В.NET, как Вы отправляете несколько аргументов в командную строку DOS?

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

Код.NET:

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

Файл the Bat похож на это (все, что он делает выполняется командный файл):

ftp.exe -s:C:\MyCMD.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
1
задан donde 1 June 2010 в 15:49
поделиться

3 ответа

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

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

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

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

2
ответ дан 3 September 2019 в 00:09
поделиться

Используйте Process.StartInfo.Arguments .

0
ответ дан 3 September 2019 в 00:09
поделиться

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

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

0
ответ дан 3 September 2019 в 00:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: