簡體   English   中英

C#應用程序無法正確執行批處理文件命令

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM