У меня проблема с командой поиска оболочки Windows в файле bat. Вывод команды find всегда пуст. Bat-файл выполняется с использованием метода .NET Process.Start
в C #. Я использую перенаправление потока вывода. Что я хочу сделать:
ProcessStartInfo processInfo = new ProcessStartInfo("c:\test.bat")
{
CreateNoWindow = true,
UseShellExecute = false,
RedirectStandardOutput = true,
RedirectStandardError = true
};
Process testProcess = new Process();
testProcess.EnableRaisingEvents = true;
testProcess.OutputDataReceived += new DataReceivedEventHandler(testProcess_OutputDataReceived);
testProcess.ErrorDataReceived += new DataReceivedEventHandler(testProcess_ErrorDataReceived);
testProcess.StartInfo = processInfo;
testProcess.Start();
Пакетный файл (c: \ test.bat) содержит команду поиска с перенаправлением в выходной файл:
find /I "TestString" "c:\TestInput.xml" > output.txt
Перенаправление outputStream работает нормально, но содержимое файла output.txt пустое (размер файла 0B). Когда я выполняю ту же пакетную команду, output.txt содержит найденные строковые вхождения. Можно ли получить команду find в работе пакетного файла с Process.Start
и перенаправить выходные потоки?
Спасибо за вашу помощь.