[英]c# application doesn't perform batch file command correctly
public void runBatchfile(String batchfilename)
{
try
{
ProcessStartInfo processInfo = new ProcessStartInfo(batchfilename);
processInfo.UseShellExecute = false;
Process batchProcess = new Process();
batchProcess.StartInfo = processInfo;
batchProcess.StartInfo.CreateNoWindow = true;
batchProcess.Start();
batchProcess.WaitForExit();
}
catch (Exception r) { }
}
runBatchfile(@"c:\lol.bat");
lol.bat
包含這兩行
dir c:\ /s /b > c:\filelist.txt
exit
當我運行我的代碼時,它所做的只是創建一個filelist.txt
文件,但實際上並未執行其余命令,如果我將其手動插入CMD,該命令將起作用。
順便說一句,我嘗試了擴展名.cmd,並且我也嘗試了不使用exit命令,而沒有任何其他結果。
請幫我 :)
在裝有Visual Studio 2010的Windows 7 64位計算機上,直接從IDE運行此代碼不會執行任何操作。
出於某種預感,這可能與寫入驅動器C:的根目錄的權限有關,我嘗試直接從具有管理員權限(右鍵單擊,以管理員身份運行)的Explorer窗口中運行.exe,並且該方法可以正常工作。
我會說這是一個許可問題。
也許您可以將輸出重定向到其他位置的文件?
更新 :
我更改了批處理文件,以便dir命令重定向到我的桌面,並且可以正常運行。
從C#調用時,我也對此有疑問。 我通常使用的解決方法是在運行命令時實際允許它顯示窗口。 不確定為什么會有所不同,但過去對我有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.