【发布时间】:2016-05-03 19:19:08
【问题描述】:
我正在办公室推出一个新的 python 脚本,为了让这个运行顺利,我还制作了一个批处理文件来安装它,并让它在用户登录时运行。
我使用 schtasks.exe 来为此安排一个任务,所以这就是我要运行的内容
schtasks /create /TN "fooname" /SC ONLOGON /TR "C:\foo - bar\fooscript.exe" /Delay 0005:00
我得到的错误是 0x80070002,这意味着找不到文件。导出我创建的任务后,我可以看到它把路径的第一位和最后一位分隔成
<Command>C:\foo</Command>
<Arguments>bar\fooscript.exe</Arguments>
我试过microsofts own help article,但没有运气。我希望在没有关于 fooscript.exe 的任何参数的情况下运行它。
【问题讨论】:
-
问题在于连字符,因为它是一个开关字符。
-
@bgalea 我怀疑连字符是问题的一部分 :) 不幸的是我无法更改文件夹的名称,有没有办法将其存储在变量中或巧妙地使用引号以便忽略连字符?
-
看看在(适应您的 guid)
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tasks\{34B086CE-B5DF-42E7-A815-87335E063F24}的注册表项中 foo 之后如何有一个&符号。尝试使用reg命令重写不带 & 的密钥。 -
执行 `dir \x "c:\foo - bar" 这将显示目录的短名称。使用该短名称代替“foo - bar”
-
应该是 `dir \x "c:\foo*" - 具有全名的版本将生成该特定目录内容的报告。
标签: windows batch-file scheduled-tasks