schtasks:设置工作目录?

时间:2012-06-04 14:43:50

标签: windows powershell cmd

我有一个程序,我试图在登录时运行,该程序依赖于它所在的同一目录中的文件。通过从命令行手动运行程序,我已经cd了,一切都按预期运行。但是,如果我安排一个任务来运行程序,我的程序会收到一个错误,抱怨找不到它需要的文件。所以我的问题是:1。)计划任务的工作目录是程序的位置吗? 2.)如果没有,我如何将工作目录设置为程序的位置?

以下是我正在使用计划我的任务的代码:

SCHTASKS /Create /TN "Test" /TR $MyLocation\Test.exe /sc onlogon /RL Highest

其中“$ MyLocation”是我设置为引用程序目录的powershell变量。

2 个答案:

答案 0 :(得分:0)

我过去使用批处理文件解决了这个问题。您可以在批处理文件中使用一个巧妙的技巧,它将为您提供批处理文件所在的目录。因此,您可以非常轻松地运行所需的应用程序。创建一个包含以下内容的批处理文件,并将其放在应用程序旁边的目录中,然后将其路径设置为/ TR参数的值。

%~dp0\Test.exe

严格来说,不需要反斜杠,因为%~dp0包含反斜杠。我认为它使批处理文件更具可读性。

答案 1 :(得分:0)

如果您运行脚本并将$ MyLocation作为参数发送,则会设置任务o:

 $cmdFile = "$MyLocation\Test.cmd"
 New-Item $cmdFile -type file
 "cd $MyLocation" >> $cmdFile
 "powershell -command '& {$($MyLocation)\Test.exe}'" >> $cmdFile
 SCHTASKS /Create /TN "Test" /TR $cmdFile /sc onlogon /RL Highest

吉斯利