Журнал CMD в файл не работает для Geth.exe

Я использую приведенный ниже код для регистрации вывода вызова cmd в файл, но иногда он не работает.

System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.FileName = "cmd.exe";
//startInfo.Arguments = "/C dir C:\\  >c:\\temp\\dir.txt";
startInfo.Arguments = "/C \"C:\\Program Files\\Geth\\geth.exe\" --exec \"web3.eth.getBalance(web3.eth.accounts[0]);\" attach >c:\\temp\\out.txt";
process.StartInfo = startInfo;
process.Start();

Простой каталог работает нормально. Использование Ethereum geth.exe без --exec работает нормально. Однако, как только я включу аргумент --exec, вывод будет пустым. Обе команды работают нормально и выдают результат, если они вызываются вручную в cmd.exe.

"C:\Program Files\Geth\geth.exe" прикрепить >c:\temp\out.txt

"C:\Program Files\Geth\geth.exe" --exec "web3.eth.getBalance(web3.eth.accounts[0]);" прикрепить >c:\temp\out.txt


person JD_    schedule 06.02.2018    source источник
comment
Я отказался от попыток разобраться и решил просто создать пакетный файл на C#, а затем вызвать пакетный файл с помощью cmd. Файл журнала был создан без проблем.   -  person JD_    schedule 06.02.2018


Ответы (1)


Я вижу, вы нашли обходной путь, но для других:

process.Start();
process.WaitForExit();

Вы должны дождаться завершения процесса.

person Mr. B    schedule 09.10.2018