windows - 计划任务 : setting a working directory?

标签 windows powershell cmd

我有一个程序,我试图在登录时运行它依赖于它所在的同一目录中的文件。通过从我已经 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/

相关文章:

c++ - 父级的 HWND 无效

windows - graphviz/dot崩溃(结果是由于安装错误引起的)

c# - 导入 .p12 文件中包含的所有证书

powershell - 使用 Powershell 在字符串中搜索反斜杠

java - 通过java用记事本打开子目录中的txt

mysql - 有没有办法将 DB 用户密码传递到命令行工具 mysqladmin 中?

powershell - 压缩归档命令返回 "Exception: Stream was too long."

cmd - 使用批处理文件在 Anaconda 中激活 python 环境

windows - 如何在Windows中为远程git存储库提取最新的提交哈希?

java - Tomcat启动失败: the port X is already in used?如何解决