我有一个批处理文件,它将搜索java进程并杀死它。 当在命令提示符下运行 bat 文件时,该脚本可以正常工作。但是当我尝试在任务计划程序中执行时,它不起作用。
我选择了“无论用户是否登录都运行”选项
我的批处理文件如下:
for /F "tokens=1*" %%i in ('jps -lv^|C:\Windows\System32\find.exe "TaskTest"') do (C:\Windows\System32\taskkill.exe /F /PID %%i )
我也尝试过此链接中提到的任何内容 批量手动运行但不在计划任务中
还有什么建议请留言。
注意:我有另一个批处理文件来归档文件,这些文件可以使用相同的用户帐户在任务计划程序中正常运行
终于我找到了问题所在。 当我取消选中任务属性中“条件”选项卡下的“仅当计算机使用交流电源时才启动”选项,并结合使用“程序”作为
的其他建议时,它起作用了C:\Windows\System32\cmd.exe
和“添加参数”为
/c C:\mypath\myFile.bat
和“开始”为
C:\mypath\
当选择“无论用户是否登录都运行”选项并选中“以最高权限运行”时,此功能有效。
感谢所有花时间分析这个问题的人:)
你为什么要寻找。我们先测试再测试,而不是先测试再做。
taskkill /f /im TaskTest&&Echo Task Killed||Echo Task not found
看看你的问题是什么
taskkill /f /im TaskTest > "%temp%\taskkill.log" 2>&1 &&Echo Task Killed >> "%temp%\taskkill.log" 2>&1|| Echo Task not found >> "%temp%\taskkill.log" 2>&1
并查看taskkill.log。
您可能还想批量执行此操作作为诊断辅助。回显你的命令行可能很有用。
tasklist > "%temp%\taskkill.log" 2>&1
set > "%temp%\taskkill.log" 2>&1
有很多好的建议,但我仍在为自己的建议而苦苦挣扎。我的任务运行并完成,没有错误,但没有任何内容复制到目的地。我通过以配置为运行任务的用户身份打开命令提示符来运行与该用户相同的脚本,并且它复制得很好,所以我知道这不是权限问题。该任务配置为无论用户是否登录以及是否具有最高权限都运行。