Batch File runs manually but not in task scheduler

末鹿安然 提交于 2019-12-01 10:53:50

问题


I have a batch file, which will search for a java process and kill the same. The script works fine when the bat file is run on the command prompt. But when I tried to execute in task scheduler, it is not working.

I have selected the option "Run whether the user is logged in or not"

My batch file is as given below:

for /F "tokens=1*" %%i in ('jps -lv^|C:\Windows\System32\find.exe "TaskTest"') do (C:\Windows\System32\taskkill.exe /F /PID %%i )

I have also tried whatever is mentioned in this link Batch runs manually but not in scheduled task

Any other suggestions please.

Note: I have another batch file to archive files which runs properly in task scheduler with the same user account


回答1:


Finally I was able to figure out the problem. It worked when I unchecked the option "Start only when the computer is on AC power' under 'Conditions' tab in task properties, combined with the other suggestion of using the 'Program' as

C:\Windows\System32\cmd.exe

and 'Add Arguments' as

/c C:\mypath\myFile.bat

and 'Start in' as

C:\mypath\

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

Thanks for all those who have spend time to analyse this :)




回答2:


Why are you searching. We do then test, not test then do.

taskkill /f /im TaskTest&&Echo Task Killed||Echo Task not found

To see what your problem is

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

and look in taskkill.log.

You may also want to do this in the batch as a diagnostic aid. Echoing out your command line m,ay be useful.

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


来源:https://stackoverflow.com/questions/26420003/batch-file-runs-manually-but-not-in-task-scheduler

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!