2013-08-23 4 views
0

Я хотел автоматизировать некоторые команды, которые запускаются на моих окнах cmd.exe.Выполнение команд cmd Windows с помощью C#

Команды TAHT я хотел выполнить:

кд \

pscp.exe

Я не в состоянии выполнить, однако до сих пор я могу открыть cmd.exe с помощью моего кода.

Мой код:

string cd = @"C:\>cd\"; 
    string pscp = @"C:\>pscp.exe"; 
    ProcessStartInfo startinfo = new ProcessStartInfo(); 
    Process.Start(@"C:\Windows\system32\cmd.exe",pscp); 
    Console.ReadLine(); 
+0

Но вы не используете 'pscp' в вашем' cmd.exe' в качестве параметра? Вы используете только 'cd', что бессмысленно. –

+0

Почему бы вам просто не создать пакетный файл и запустить этот файл с помощью Process.Star («myBatchFile.bat»); – VahidNaderi

+0

как насчет Process.Start (@ "C: \ Windows \ system32 \ cmd.exe", "pscp.exe"); ? – iceheaven31

ответ

1

Вы должны установить Arguements свойство. Например. открыть CMD и начать IPCONFIG:

 ProcessStartInfo startInfo = new ProcessStartInfo(); 
     startInfo.FileName = @"C:\Windows\system32\cmd.exe"; 
     startInfo.Arguments = "/k ipconfig"; 
     Process myProcess = new Process(); 
     myProcess.StartInfo = startInfo; 
     myProcess.Start(); 
+0

спасибо, я понял, это хорошо работает для выполнения одной команды, то есть ipconfig, но что делать, если мне нужно выполнить более одной команды в cmd.exe. –

+0

получил: const string cmdtext = @ "/ k command1 & command2 & command3 ..."; Process.Start (@ "C: \ Windows \ system32 \ cmd.exe", cmdtext); –

+0

@ RanveerSidhu Следующая ссылка SO может помочь изменить код в соответствии с вашими потребностями: http://stackoverflow.com/questions/437419/execute-multiple-command-lines-with-the-same-process-using-net – MattR

Смежные вопросы