让任务计划程序从程序的位置运行程序

让任务计划程序从程序的位置运行程序

我编写了一个 .cmd 脚本,希望每天早上 7:30 运行它。现在,如果我手动运行该任务,它能够运行我在其中输入的所有命令(其中一些是辅助 .cmd 脚本),因为该程序从父脚本的位置启动。当测试 Windows 的任务计划程序运行脚本的方式时,当前目录变量显示为 system32(cmd.exe 所在的位置),因此当我的脚本尝试查找任何辅助脚本时,都会失败,因为它们不在 system32 中。

我知道,在我的父脚本的开头我可以简单地写:

cd PathToParentScript

但我想避免这种情况,因为我计划将该脚本提供给其他同行,并希望将我的所有配置变量保存在一个地方(即我的一个辅助脚本)。

是否可以让任务计划程序从脚本的位置而不是 cmd.exe 所在的位置启动脚本?如果可以,我该怎么做?

我有 Windows 10。

答案1

通过在开头添加以下命令来配置脚本以切换到实际脚本的当前位置:

CD /d %~dp0

它将扩展为:

CD /d drive:path_of script

笔记:如果脚本的驱动器与当前驱动器不同,该/D参数可使 CD 切换到脚本的驱动器。

语法是对变量(即脚本文件的名称)%~dp0的修改%0~dp,其中 d是驱动力和是路径。

答案2

设置操作的选项还应该有一个标有“开始于(可选)”的框,将其设置为您希望脚本在其中运行的文件夹。

相关内容