簡體   English   中英

通過應用程序運行時批處理文件不刪除文件

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

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