2016-07-20 19 views
0

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 

+2

C:\の前の '/'とは何ですか? –

+0

間違いでした。これをコマンドと見なすには/ cされているはずです。 – user4895544

答えて

0

があなたの引数に/cを追加します助けてください。これにより、コマンドを渡していることが確認されます。cmd.exe

また、string[] MyArguments = { @"/C:\\Program Files (x86)\\salesforce.com\\Data Loader\\bin", "process.bat", "\"PathName"", "BeanName"};の先頭には、C:の前に/があり、cmdにエラーが発生します。

+0

を指摘していただきありがとうございます。これらが引数の場合は/ cを追加する必要があります。1番目の引数はディレクトリの変更、残りはcmdの引数です。 {@ "C:¥¥Program Files(x86)¥¥salesforce.com¥¥データローダ\\ bin "、" process.bat "、" \ "C:\\プログラムファイル(x86)\\ PathName" "、" BeanName "}; – user4895544

+0

MyArguments 'string [] MyArguments = {"/c "、@"/C:\\プログラムファイル(x86)\\ salesforce.com \\ Data Loader \\ bin "、" process.bat " " –

+0

"が機能しません – user4895544

関連する問題