C#console appからコマンドライン引数を実行しようとしています。変更ディレクトリのコマンドライン引数
コードは次のとおりです。
string[] MyArguments = { "/c", @"'C:\Program Files (x86)\salesforce.com\Data Loader\bin\process.bat'", "\"C:\\Program Files (x86)\\salesforce.com\\Data Loader\\samples\\conf\"", "accountMasterProcess" };
ProcessStartInfo startInfo = new ProcessStartInfo();
Process process;
startInfo.FileName = "cmd.exe";
startInfo.Arguments = String.Join(" ", MyArguments);
process = Process.Start(startInfo);
startInfo.RedirectStandardError = true;
startInfo.RedirectStandardOutput = true;
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.UseShellExecute = false;
process.OutputDataReceived += (sender, arg) => Console.WriteLine("received output: {0}", arg.Data);
process.Start();
//process.BeginOutputReadLine();
process.WaitForExit();
string output = process.StandardOutput.ReadToEnd();
string error = process.StandardError.ReadToEnd();
exitCode = process.ExitCode;
Console.WriteLine("output>>" + (String.IsNullOrEmpty(output) ? "(none)" : output));
Console.WriteLine("error>>" + (String.IsNullOrEmpty(error) ? "(none)" : error));
Console.WriteLine("ExitCode: " + exitCode.ToString(), "ExecuteCommand");
process.Close();
私はCMDウィンドウですべての結果が表示されません。 CMDウィンドウ内の実引数は次のとおりです。
C:\Program Files (x86)\salesforce.com\Data Loader\bin>process.bat "C:\Program Files (x86)\salesforce.com\Data Loader\samples\conf" accountMasterProcess
C:\の前の '/'とは何ですか? –
間違いでした。これをコマンドと見なすには/ cされているはずです。 – user4895544