単純な問題がありますが、これを処理する方法がわかりません。つまり、フォルダー内のすべてのファイルを削除する単純なバッチ ファイルがあります (たとえば)。どこでも実行できるが、C# によるアプリケーションで実行したい。プロジェクトフォルダにスペースが含まれていない場合(「例:C:\Project Test\test.bat
」はエラーになりますが、「C:\ProjectTest\test.bat
」は実行されます)、すべて問題ありません。
以下は、実行するソース コードです (繰り返しますが、プロジェクト フォルダーのフォルダー名にスペースが含まれている場合にのみエラーになります)。プロジェクト フォルダーにスペースがない場合にファイル バッチを実行してもエラーにならない。
Process myProcess = new Process();
myProcess.StartInfo.FileName = "cmd.exe";
myProcess.StartInfo.Arguments = "D:\\prepare.bat";
myProcess.StartInfo.WorkingDirectory = "D:\\";
myProcess.StartInfo.UseShellExecute = false;
myProcess.StartInfo.RedirectStandardOutput = true;
//myProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
myProcess.Start();
StreamReader myStreamReader = myProcess.StandardOutput;
string myString = myStreamReader.ReadLine();
MessageBox.Show(myProcess.StartInfo.Arguments + " " + myString);
myProcess.WaitForExit();
ありがとうございます。