[英]Batch file not deleting files when run through application
我有一個批處理文件,它刪除某個目錄中的所有文件。 當我手動運行它時,這工作得很好,但是從應用程序運行時,它不會刪除文件。
批處理文件代碼:
cd "C:\Users\namehere\Desktop\Test"
del *.* /q
taskkill /im Presenter.exe
START D:\PresenterInstallFolder\Presenter\Presenter.exe
exit
批處理文件確實會觸發,因為它已加載到我的應用程序中。 如前所述,當手動運行時,它運行良好。
我正在使用System.Diagnostics.Process.Start()
啟動批處理文件
當TASKLIST和TASKKILL工作時,您應該可以做得更干凈一些:
del /q "C:\Users\namehere\Desktop\Test\*.*"
WMIC Path win32_process WHERE "CommandLine Like '%Presenter%'" CALL Terminate
START D:\PresenterInstallFolder\Presenter\Presenter.exe
exit
那下面呢?
del /q "%userprofile%\Desktop\Test\*.*"
WMIC Path win32_process WHERE "CommandLine Like '%Presenter%'" CALL Terminate
START D:\PresenterInstallFolder\Presenter\Presenter.exe
exit
在我看來,您還想先終止應用程序,然后刪除文件:
WMIC Path win32_process WHERE "CommandLine Like '%Presenter%'" CALL Terminate
del /q "%userprofile%\Desktop\Test\*.*"
START D:\PresenterInstallFolder\Presenter\Presenter.exe
exit
您可以添加一個“睡眠” 1或2秒,以根據需要給該過程時間停止或啟動,效果很好。
其他啟動程序的方法,您可以執行以下操作:
WMIC process CALL Create "Notepad.exe"
或者,在您的示例中:
wmic process call create "cmd /c start /min D:\PresenterInstallFolder\Presenter\Presenter.exe"
如果您不想啟動第二個CMD實例:
wmic process call create "D:\PresenterInstallFolder\Presenter\Presenter.exe"
然后,您應該可以執行以下操作:
呼叫C:\\ Path \\ YourBatchfile.bat
希望這可以幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.