COPY命令找不到在C#中运行时指定的路径

时间:2014-06-07 10:04:49

标签: c# command-line process command

当我从命令行运行以下命令时,它可以正常工作。

COPY "C:\Windows\System32\winevt\Logs\Application.evtx" "C:\ProgramData\MyCompany\Support\Logs\Application.evtx"

但是我想在C#

中使用以下命令来运行它
 System.Diagnostics.ProcessStartInfo procStartInfo = new System.Diagnostics.ProcessStartInfo("cmd", "/c " + CurrentCommand);
 StreamReader.procStartInfo.RedirectStandardOutput = true;
 procStartInfo.RedirectStandardError = true;
 procStartInfo.UseShellExecute = false;

 // Do not create the black window.
 procStartInfo.CreateNoWindow = true;

 System.Diagnostics.Process proc = new System.Diagnostics.Process();
 proc.StartInfo = procStartInfo;
 proc.Start();

 while (!proc.StandardError.EndOfStream)
 {
      sError = proc.StandardError.ReadLine();
      //System.Windows.Forms.MessageBox.Show("ERROR: " + sError);
 }

 proc.WaitForExit();
 // Get the output into a string
 sResult = proc.StandardOutput.ReadToEnd();

sResult返回以下错误:

  

系统无法找到指定的路径

为什么会这样?

1 个答案:

答案 0 :(得分:0)

我想你需要"逃避" cmd /c参数的命令参数,如

ProcessStartInfo procStartInfo = new ProcessStartInfo("cmd", string.Format("/c \"{0}\"", CurrentCommand));