我刚刚注意到Windows 7任务计划程序不使用最新更新的环境路径变量。任务计划程序已启动并正在运行,我更改了
path
变量。
任务调度程序中运行的新进程具有旧路径。我必须杀死
taskeng.exe
,以便它可以开始使用最新的路径。
所以看起来任务计划程序生成新进程作为子进程而不是新的父进程。
有没有解决这个问题而不终止任务调度程序进程的方法?
使用
cmd /c
启动程序,这将允许访问环境变量。例如:
cmd /c start %my_exe_path%\myexe.exe
更改调度程序中运行作业的帐户对我有用(在 win server 2008 r2 上)。
要在任务计划程序中使用正确的路径,请使用注册表,如下所示:
:::: print System PATH
for /f "usebackq tokens=2,*" %%A in (`reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v PATH`) do echo "%%B"
:::: print User PATH
for /f "usebackq tokens=2,*" %%A in (`reg query HKCU\Environment /v PATH`) do echo "%%B"
如果您从交互式 CMD 而不是脚本运行此命令,请将
%%A
和 %%B
更改为 %A
和 %B