【问题标题】:Batch File runs manually but not in task scheduler批处理文件手动运行,但不在任务计划程序中
【发布时间】:2014-12-12 17:47:03
【问题描述】:

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

我也尝试过此链接中提到的任何内容 Batch runs manually but not in scheduled task

请有其他建议。

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

【问题讨论】:

  • 我最近遇到了这个问题,虽然情况非常不同,但我问a question on SF在哪里可以找到很多常见的解决方案。
  • 我尝试了所有这些建议。但没有任何效果:(
  • 什么失败了?是发现还是杀戮??
  • 这也是我想知道的。在命令提示符下一切正常

标签: java batch-file command-prompt pid


【解决方案1】:

我终于能够找出问题所在。 当我在任务属性中的“条件”选项卡下取消选中“仅在计算机使用交流电源时启动”选项,并结合使用“程序”的其他建议时,它起作用了

C:\Windows\System32\cmd.exe

和“添加参数”为

/c C:\mypath\myFile.bat

和“开始”为

C:\mypath\

This worked when the option 'Run whether user is logged in or not' is selected with 'Run with highest privileges' checked.

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

【讨论】:

  • 谢谢你,我花了很长时间寻找这个解决方案,效果很好!
  • 很好的建议,但这些都不适合我。叹息
【解决方案2】:

你为什么要搜索。我们做然后测试,而不是测试然后做。

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。

您可能还希望在批处理中执行此操作作为诊断辅助。呼应你的命令行m,可能会有用。

tasklist > "%temp%\taskkill.log" 2>&1 
set > "%temp%\taskkill.log" 2>&1 

【讨论】:

    猜你喜欢
    • 2012-09-12
    • 2018-11-05
    • 2014-03-15
    • 2013-10-19
    • 2015-02-23
    • 1970-01-01
    • 2013-03-01
    • 2014-09-14
    • 2019-04-06
    相关资源
    最近更新 更多