1

以下のコードを使用して、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();

単純なディレクトリは正常に機能します。--exec なしで Ethereum geth.exe を使用すると、問題なく動作します。ただし、 --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

4

1 に答える 1

0

回避策を見つけたようですが、他の人にとっては:

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

プロセスが終了するまで待つ必要があります。

于 2018-10-09T17:12:35.800 に答える