Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#从控制台应用程序调用EXE_C#_Console Application - Fatal编程技术网

C#从控制台应用程序调用EXE

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..............................

我有一个控制台应用程序,可以做很多事情。其中一个步骤涉及调用EXE(AzCopy)。我已在提示符下成功运行了此类型命令,它如下所示:

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()无法解析环境路径。我将尝试指定整个路径。