運行我有一個批處理文件foo1.bat
包含此:批不從控制檯
@echo off
echo.>"\\xxx\xxx$\xxx\xxxx\xxxx\BATScipt Files\dblank.txt"
如果我雙擊然後dblank.txt
得到預期中創建的文件。
在我Console App
我已經試過兩種不同的方法:
1.
System.Diagnostics.Process.Start(@"\\xxx\xxx$\xxx\xxxx\xxxx\BATScipt Files\foo1.bat");
2.
ProcessStartInfo ProcessInfo;
Process process;
ProcessInfo = new ProcessStartInfo("cmd.exe","/c \\xxx\xxx$\xxx\xxxx\xxxx\BATScipt Files\foo1.bat");
ProcessInfo.CreateNoWindow = true;
ProcessInfo.UseShellExecute = false;
ProcessInfo.WorkingDirectory = aPath;
process = Process.Start(ProcessInfo);
process.WaitForExit();
process.Close();
無論上述拋出一個異常,但沒有造成預期的輸出文件:
如果我更改裏面的代碼爲類似以下內容並創建相應的空文件bar.txt
然後運行通過控制檯確定並如期文字寫入bar.txt
:
@echo off
setlocal enableextensions
(
systeminfo | findstr ....
echo %a%
echo %b%
echo %c%
) > "%~dp0\bar.txt"
「ProcessStartInfo」構造函數的第二個字符串參數是否真的不以「@」開頭?否則你的反斜槓將被吞噬。 – wardies 2014-09-05 15:09:33
另外,您是否嘗試過使用'/ k'參數運行'cmd',以便shell保持不變,您可以查看任何報告的錯誤? – wardies 2014-09-05 15:14:24
@wardies現在測試您的更改 – whytheq 2014-09-05 15:33:54