Serviceを読んで理解し、同意したものとみなします。スタック・オーバーフローはプログラマーとプログラミングに熱心な人のためのQ&Aサイトです。830件0VS2015上のC++でコーディングしています。起動したいbatファイルまでの絶対パスに日本語名が含まれている時に、system()又は_wsystem()で起動しようとするとstringの変数又はstringの変数をwstringに変換して渡しているのですが、文字化けしてしまっていてうまく起動できません。);}wstringに変換せずsystem()で呼んでも文字化けしてしまい、同じ結果でした。wstringで統一しようとしましたが"\"とBatNameを合わせることが出来ませんでした。C++でbatファイルを起動できないでしょうか。個の銅バッジ4日本語が原因とするのであれば、日本語が含まれていない場合に正常動作するコードを提示してください。挙げられたコードはそもそもコンパイルが通らないため、実際に試されたコードとは異なるはずであり、回答が意味を成しません。パスの結合もできます。このため'\\'を操作する必要もなくなり、std::wstringやstd::stringも必要なくなり、mbstowcs()による文字コード変換も必要なくなります。15.6はN4100という古い仕様に基づく実装であり名前空間もstd::experimental::filesystemとなっています。15.7からはC++17に準拠した新しい実装となっており名前空間もstd::filesystemとなっています(互換のためstd::experimental::filesystemも残されています)。recursive_directory_iteratorを使うのであれば、forループの方がラムダ式なしでシンプルに書けます。}}"hoge.txt"やBatNameについては上記コードでも動作はしますが、774RRさんも指摘されているようにwchar_tで記述することを推奨します。個の銅バッジありがとうございます。for文での記述により見やすくなったと思います。コードの意味を理解しつつ、引数を指定して起動する方法について調べていきたいと考えています。混在していたり、その結果不要と思われる変換が入っていたりと異様に複雑なコードと化しています。L"Do.bat");}で十分なのではないか・・・と。