1

我需要从 .NET windows 应用程序执行命令行。

我尝试使用此代码,但出现错误:

'C:\Documents' 不是内部或外部命令、可运行程序或批处理文件。

var command ="\"C:\\Documents and Settings\\Administrator\\My Documents\\test.exe\" \"D:\\abc.pdf\" \"C:\\Documents and Settings\\Administrator\\My Documents\\def.pdf\"";

var processInfo = new ProcessStartInfo("cmd","/c " + command)
{
    UseShellExecute = false,
    RedirectStandardError = true,
    CreateNoWindow = true
};
var p = Process.Start(processInfo);
4

2 回答 2

6

尝试使用Process.Start的重载版本并在第二个参数中传递参数:

var command = @"C:\Documents and Settings\Administrator\My Documents\test.exe";
var parameters = @"""D:\abc.pdf"" ""C:\Documents and Settings\Administrator\My Documents\def.pdf""";

var p = Process.Start(command, parameters);

这是假设您尝试使用 PDF 文件作为参数调用 test.exe。

于 2010-05-11T18:58:48.480 回答
6

我不认为你需要掏腰包cmd。直接调用exe即可:

var command ="\"C:\\Documents and Settings\\Administrator\\My Documents\\test.exe\" \"D:\\abc.pdf\" \"C:\\Documents and Settings\\Administrator\\My Documents\\def.pdf\"";
var processInfo = new ProcessStartInfo(command)
                      {
                          UseShellExecute = false,
                          RedirectStandardError = true,
                          CreateNoWindow = true
                      };
var p = Process.Start(processInfo);
于 2010-05-11T18:53:55.930 回答