我有一个程序,我试图在登录时运行它依赖于它所在的同一目录中的文件。通过从我已经 cd 到的命令行手动运行程序,一切都按预期运行。但是,如果我安排一个任务来运行该程序,我会从我的程序中收到一个错误,提示找不到它需要的文件。所以我的问题是:1.) 计划任务的工作目录是程序的位置吗? 2.) 如果没有,我如何将工作目录设置为程序的位置?
这是我在安排我的任务时使用的代码:
SCHTASKS /Create /TN "Test" /TR $MyLocation\Test.exe /sc onlogon /RL Highest
其中“$MyLocation”是一个 powershell 变量,我将其设置为引用我的程序目录。
最佳答案
我过去使用批处理文件解决了这个问题。您可以在批处理文件中使用一个巧妙的技巧,它会为您提供批处理文件所在的目录。因此,您可以非常轻松地运行所需的应用程序。创建一个包含以下内容的批处理文件,并将其放在您的应用程序旁边的目录中,然后将其路径设置为/TR 参数的值。
%~dp0\Test.exe
严格来说,反斜杠不是必需的,因为 %~dp0
无论如何都包含尾随反斜杠。我认为它使批处理文件更具可读性。
关于windows - 计划任务 : setting a working directory?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10883235/