批处理文件手动运行,但不在任务计划程序中运行

问题描述 投票:0回答:4

我有一个批处理文件,它将搜索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 )

我也尝试过此链接中提到的任何内容 批量手动运行但不在计划任务中

还有什么建议请留言。

注意:我有另一个批处理文件来归档文件,这些文件可以使用相同的用户帐户在任务计划程序中正常运行

java batch-file command-prompt pid
4个回答
22
投票

终于我找到了问题所在。 当我取消选中任务属性中“条件”选项卡下的“仅当计算机使用交流电源时才启动”选项,并结合使用“程序”作为

的其他建议时,它起作用了
C:\Windows\System32\cmd.exe

和“添加参数”为

/c C:\mypath\myFile.bat

和“开始”为

C:\mypath\

当选择“无论用户是否登录都运行”选项并选中“以最高权限运行”时,此功能有效。

感谢所有花时间分析这个问题的人:)


0
投票

你为什么要寻找。我们先测试再测试,而不是先测试再做。

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 

0
投票

我相信 user1407688 已经清楚地回答了这个问题,但由于我也很难找到这个问题的解决方案,所以我正在粘贴图像,如果它有助于让正在寻找解决方案的其他人更清楚的话。就我而言,需要取消选中“条件”下的“电源”复选框。单击下面的链接查看图像:

在此输入图片描述

在此输入图片描述


0
投票

有很多好的建议,但我仍在为自己的建议而苦苦挣扎。我的任务运行并完成,没有错误,但没有任何内容复制到目的地。我通过以配置为运行任务的用户身份打开命令提示符来运行与该用户相同的脚本,并且它复制得很好,所以我知道这不是权限问题。该任务配置为无论用户是否登录以及是否具有最高权限都运行。

© www.soinside.com 2019 - 2024. All rights reserved.