【发布时间】:2012-08-06 07:45:00
【问题描述】:
我刚刚注意到 Windows 7 任务计划程序不使用最新更新的环境路径变量。任务调度程序已启动并正在运行,我更改了路径变量。在任务调度程序中运行的新进程具有旧路径。我不得不杀死 taskeng.exe 以便它可以开始使用最新的路径。所以看起来任务调度程序将新进程作为子进程而不是新的父进程生成。在不终止任务调度程序进程的情况下,是否有任何解决方法?
问候, 阿杰
【问题讨论】:
我刚刚注意到 Windows 7 任务计划程序不使用最新更新的环境路径变量。任务调度程序已启动并正在运行,我更改了路径变量。在任务调度程序中运行的新进程具有旧路径。我不得不杀死 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
【讨论】: