A_Griffin Ответов: 1

Запуск bat файла сведен к минимуму


Я пытаюсь запустить файл .bat (на самом деле серию из них) из приложения .NET и скрыть (или, по крайней мере, минимизировать) командное окно - но оно будет настаивать на мигании. Пробовал с закомментированными строками ниже и без них.

Есть идеи?

Что я уже пробовал:

psInfo = New ProcessStartInfo(Path_to_bat_file)
psInfo.WorkingDirectory = Application.StartupPath & "\bats"
psInfo.WindowStyle = ProcessWindowStyle.Minimized
' psInfo.UseShellExecute = False
' psInfo.RedirectStandardInput = False
myProcess = Process.Start(psInfo)
myProcess.WaitForExit()
или, если вы предпочитаете:
psInfo = new ProcessStartInfo(Path_to_bat_file);
psInfo.WorkingDirectory = Application.StartupPath + "\\bats";
psInfo.WindowStyle = ProcessWindowStyle.Minimized;
// psInfo.UseShellExecute = false;
// psInfo.RedirectStandardInput = false;
myProcess = Process.Start(psInfo);
myProcess.WaitForExit();

1 Ответов

Рейтинг:
10

an0ther1

Свойство RedirectStandardInput по умолчанию имеет значение false, следовательно, комментируется или нет одно и то же.
Попробуйте сделать следующее;

// Create 2 stream readers to capture standard output & error if required
StreamReader srOut;
StreamReader srErr;
// create a new process
using(System.Diagnostics.Process proc = new System.Diagnostics.Process())
{
    proc.StartInfo.UseShellExecute = false;
    proc.StartInfo.RedirectStandardOutput = true;
    proc.StartInfo.RedirectStandardError = true;
    // Set command to run in a hidden window
    proc.StartInfo.CreateNoWindow = true;
    proc.StartInfo.FileName = "Path and Name of BAT file";
    proc.Start();
    // Set output streams if needed
    srOut = proc.StandardOutput;
    srErr = proc.StandardError;
    proc.WaitForExit();
}
// read output & error stream if required
string strRead = srOut.ReadToEnd();
string strError = srErr.ReadToEnd();


ЗАПИСКА: Если ваш Bat - файл может зависнуть, то вам нужно будет завершить его программно-он не будет виден на рабочем столе

Класс MSDN ProcessStartInfo (System.Диагностика)[^]

с уважением


A_Griffin

Большое вам спасибо!

an0ther1

Нет проблем, если решение работает, пожалуйста, примите это решение

с уважением