C # запускает некоторые команды cmd, но другие не - PullRequest
0 голосов
/ 06 сентября 2018

Приложение «Мои формы Windows» запускает событие:

using System.Diagnostics;
string strCmdText = "'/C ping server1.example.com > C:\\Users\\myusername\\Desktop\\1\\a.txt";
Process.Start("cmd.exe", strCmdText);

При выполнении cmd.exe порождается, работает некоторое время, вывод не отображается, но присутствует в перенаправленном файле 1.txt.


Однако мне нужно выполнить команду запроса:

using System.Diagnostics;
string strCmdText = "'/C query user /server:server1.example.com > C:\\Users\\myusername\\Desktop\\1\\a.txt";
Process.Start("cmd.exe", strCmdText);

При выполнении он запускает cmd.exe, но только на 1 секунду, затем исчезает, а вывод отсутствует в файле 1.txt.


Есть ли способ узнать, что команда запроса делает до того, как она исчезнет, ​​например, оставить ее открытой при выполнении? Может быть, там что-то интересное. Или я что-то не так делаю? Может быть, мне нужно запустить команду в противном случае?

Ответы [ 2 ]

0 голосов
/ 06 сентября 2018

, если вы действительно хотите запустить код как свой. просто замените «CMD» на «CMD / k»

0 голосов
/ 06 сентября 2018

Таким образом:

string outputProcess = "";
string errorProcess = "";

using (Process process = new Process())
{
    process.StartInfo.FileName = yourPath;
    process.StartInfo.Arguments = yourArguments;
    process.StartInfo.WindowStyle = ProcessWindowStyle.Maximized;
    process.StartInfo.UseShellExecute = false;
    process.StartInfo.RedirectStandardOutput = true;
    process.StartInfo.RedirectStandardError = true;
    process.Start();
    outputProcess = process.StandardOutput.ReadToEnd();
    errorProcess = process.StandardError.ReadToEnd();
    process.WaitForExit();
}
...