美好的一天,我有一个运行特定应用程序的.bat文件,然后在5秒后关闭/杀死它。
我现在因为它在应用程序打开时成功打开了应用程序,它将不会执行剩余的命令,除非我手动关闭应用程序。
这是我的代码:
cd "C:\Program Files (x86)\Aspera\Point-to-Point\bin\"
asperascp.exe
sleep 5
taskkill /IM asperascp.exe /f
我也尝试删除sleep
命令。
cd "C:\Program Files (x86)\Aspera\Point-to-Point\bin\"
asperascp.exe
taskkill /IM asperascp.exe /f
但它会有相同的输出,当asperascp.exe启动时它不会执行剩余的命令。
任何提示?
感谢。
答案 0 :(得分:10)
您可以使用Start /b命令。
@echo off
cd "C:\Program Files (x86)\Aspera\Point-to-Point\bin\"
Start "" /b asperascp.exe
timeout /T 5 /nobreak >nul
taskkill /IM asperascp.exe /F
答案 1 :(得分:3)
TASKKILL /IM asperascp.exe /F
将使用相同的图像名称杀死所有图像。因此,如果你运行相同的程序两次,例如,第二个程序在第一个程序退出之前启动,第二个程序也会在第一个程序运行taskkill时被杀死。如果执行tasklist
,您将看到一些具有相同图像名称但具有不同PID的图像。您必须获取批处理文件启动的过程的PID(我无法想到如何使用CMD执行此操作。)然后您可以使用:
TASKKILL /PID 999 /F
答案 2 :(得分:-2)
TASKLIST
命令对于获取PID可能有用。