我有一个我试图在登录时运行的程序,它依赖于它所在的同一目录中的文件。通过从命令行手动运行程序,一切都可以正常运行。但是,如果我安排一个任务来运行程序,我会从我的程序中得到一个错误,它抱怨找不到它需要的文件。所以我的问题是: 1.)计划任务的工作目录是否为程序的位置?)如果没有,我该如何将工作目录设置为程序所在的位置?
下面是我使用调度我的任务的代码:
SCHTASKS /Create /TN "Test" /TR $MyLocation\Test.exe /sc onlogon /RL Highest其中"$MyLocation“是一个powershell变量,我将其设置为引用程序的目录。
发布于 2012-06-06 18:22:15
我以前通过使用批处理文件解决了这个问题。您可以在批处理文件中使用一个巧妙的技巧,它将为您提供批处理文件所在的目录。因此,您可以很容易地运行您想要的应用程序。创建一个包含以下内容的批处理文件,并将其放在应用程序旁边的目录中,然后将其路径设置为/TR参数的值。
%~dp0\Test.exe严格地说,反斜杠不是必需的,因为%~dp0无论如何都会包含一个尾随反斜杠。我认为这会使批处理文件更具可读性。
发布于 2012-06-07 00:35:47
如果您运行一个脚本并将$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吉斯利
https://stackoverflow.com/questions/10883235
复制相似问题