Выполнение командной строки из приложения Windows

Мне нужно выполнить командную строку из приложения Windows .NET.

Я пробовал с этим кодом, но получил ошибку:

«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);

person aron    schedule 11.05.2010    source источник


Ответы (2)


Я не думаю, что вам нужно раскошелиться на 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);
person Oded    schedule 11.05.2010

Попробуйте использовать перегруженную версию 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);

Предполагается, что вы пытаетесь вызвать test.exe с файлами PDF в качестве параметров.

person Phil Lamb    schedule 11.05.2010