C#从控制台应用程序调用EXE
我有一个控制台应用程序,可以做很多事情。其中一个步骤涉及调用EXE(AzCopy)。我已在提示符下成功运行了此类型命令,它如下所示:C#从控制台应用程序调用EXE,c#,console-application,C#,Console Application,我有一个控制台应用程序,可以做很多事情。其中一个步骤涉及调用EXE(AzCopy)。我已在提示符下成功运行了此类型命令,它如下所示: AzCopy /Source:https://mysite.table.core.windows.net/MYTABLE/ /SourceKey:SOURCEKEY /Dest:C:\export /Manifest:MYTABLE "/C AzCopy /Source:https://mysite.t..............................
AzCopy /Source:https://mysite.table.core.windows.net/MYTABLE/ /SourceKey:SOURCEKEY /Dest:C:\export /Manifest:MYTABLE
"/C AzCopy /Source:https://mysite.t........................................."
我需要在控制台应用程序的执行过程中运行这个脚本。我见过很多不同的方法,但似乎都不管用。我试过这个:
System.Diagnostics.Process.Start("CMD.exe", command);
这是:
var procStartInfo = new ProcessStartInfo("AzCopy", command);
var p = new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.Arguments = command;
p.Start();
string output = p.StandardOutput.ReadToEnd();
p.WaitForExit();
这是:
var procStartInfo = new ProcessStartInfo("AzCopy", command);
var p = new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.Arguments = command;
p.Start();
string output = p.StandardOutput.ReadToEnd();
p.WaitForExit();
似乎没有人真正开始了AzCopy呼叫。给出了什么?
System.Diagnostics.Process.Start(“CMD.exe”,command)代码>应该可以工作
但是您需要在命令开头添加/C
大概是这样的:
AzCopy /Source:https://mysite.table.core.windows.net/MYTABLE/ /SourceKey:SOURCEKEY /Dest:C:\export /Manifest:MYTABLE
"/C AzCopy /Source:https://mysite.t........................................."
@im1dermike:你说的“什么都没做”是什么意思。您能看到命令提示符正在启动吗?它是否显示任何错误?我忘了它是在包含“/C”时还是在省略它时出现的,但其中一个显示了单独的命令窗口打开。在这两种情况下,命令都没有执行,两个窗口都没有输出,等等。当您手动打开cmd并输入命令时,它是否工作?@im1dermike:Add“/K AzCopy/…”并查看控制台上是否有任何错误。“/K..”应保持cmd打开。因此,如果有错误,您可以看到。现在我看到它正在抱怨AzCopy未被识别。我将AzCopy路径添加到我的环境路径中,当我直接打开它时,它会在cmd提示符中被识别。似乎通过进程调用cmd.Start()无法解析环境路径。我将尝试指定整个路径。