В .NET, как вы отправляете несколько аргументов в командной строке DOS? - PullRequest
1 голос
/ 01 июня 2010

Я пытаюсь выполнить команды DOS в ASP.NET 2.0. То, что у меня сейчас есть, называется BAT-файлом, который, в свою очередь, вызывает CMD-файл. Это работает (конечный результат - файл получает ftp). Тем не менее, я хотел бы сбросить файлы BAT и CMD и запустить все в .NET. Каков формат отправки нескольких аргументов в командное окно? Вот что у меня сейчас.

Код .NET:

    System.Diagnostics.Process proc = new System.Diagnostics.Process();
    proc.EnableRaisingEvents = false;
    proc.StartInfo.FileName = "C:\\MyBat.BAT";
    proc.Start();
    proc.WaitForExit();

Файл Bat выглядит следующим образом (все, что он делает, это запускает файл cmd):

ftp.exe -s:C:\MyCMD.cmd

А вот содержимое файла Cmd:

open <my host>
<my user name>
<my pw>
quote site cyl pri=1 sec=1 lrecl=1786 blksize=0 recfm=fb retpd=30
put C:\MyDTLFile.dtl 'MyDTLFile.dtl'
quit

Ответы [ 3 ]

2 голосов
/ 01 июня 2010

Вы используете ProcessStartInfo.Arguments для передачи своих аргументов:

proc.StartInfo.FileName = @"ftp.exe";
proc.StartInfo.Arguments = @"-s:C:\MyCMD.cmd";

Но - это не то, что вам нужно, поскольку вы хотите заменить cmd файл тоже.Однако содержимое не является аргументом командной строки, который передается ftp.exe .Это скорее входной скрипт.Поэтому передача содержимого в качестве аргумента не будет работать.

Чтобы даже файл cmd исчез, необходимо использовать стандартный ввод и вывод.Например, Process.StandardInput .

0 голосов
/ 01 июня 2010

Если вы запускаете новый процесс, просто установите для свойства ProcessStartInfo.Arguments строку, содержащую все ваши аргументы, как если бы вы ввели их в командной строке.

Кроме того, поскольку похоже, что вы пытаетесь создать сценарий для FTP-клиента командной строки, вас может заинтересовать клиентская библиотека C # FTP *1007* в CodeProject или один из ответов это другой вопрос StackOverflow .

0 голосов
/ 01 июня 2010

Использование Process.StartInfo.Arguments.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...