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