如何使用 SCHTASKS 正确引用文件路径
Posted
技术标签:
【中文标题】如何使用 SCHTASKS 正确引用文件路径【英文标题】:How to properly quote file path with SCHTASKS 【发布时间】:2011-08-15 19:36:29 【问题描述】:我正在编写一个生成批处理文件内容的小应用程序,使用 SCHTASKS 创建计划任务。但是,我根本无法使文件路径正常工作。我需要另一双眼睛。
SCHTASKS /CREATE /TN "TASK1" /TR "\"C:\Program_Files\Spybot - Search & Destroy\SpybotSD.exe\" \AUTOCHECK \AUTOFIX \AUTOCLOSE" /ST 01:00:00 /SC Daily /RU MyUser /RP MyPass
我查看了这里的其他线程和 MS 文档,我认为我的格式正确。但是,输出失败:
错误:语法无效。缺少强制选项“/sc”。 输入“SCHTASKS /CREATE /?”供使用。 系统找不到指定的路径。
我可以在这里提出一些建议。
【问题讨论】:
【参考方案1】:您需要使用这样的插入符号来转义 & 符号:
SCHTASKS /CREATE /TN "TASK1" /TR "\"C:\Program_Files\Spybot - Search ^& Destroy\SpybotSD.exe\" \AUTOCHECK \AUTOFIX \AUTOCLOSE" /ST 01:00:00 /SC Daily /RU MyUser /RP MyPass
【讨论】:
在我的机器 (Windows 7) 上,虽然插入符号确实有助于注册任务,但它实际上并没有运行。但是,添加/V1
开关使其一切按预期工作:]
只需将开关置于帮助说明中所述的适当位置即可。 schtasks /create /?
给了我以下(简而言之):SCHTASKS /Create [/S system [/U username [/P [password]]]] [/RU username [/RP password]] /SC schedule [/MO modifier] [/D day] [/M months] [/I idletime] /TN taskname /TR taskrun [/ST starttime] [/RI interval] [ /ET endtime | /DU duration [/K] [/XML xmlfile] [/V1]] [/SD startdate] [/ED enddate] [/IT | /NP] [/Z] [/F]
【参考方案2】:
我遇到了这个问题,我解决它的方法是改变创建 schtask 选项中的顺序,正如这篇文章 http://billaking.blogspot.com/2010/11/c-sharp-windows-task-with-schtasks.html 中所解释的那样,它工作得非常完美。
StringBuilder commandLineParams = new StringBuilder();
commandLineParams.AppendFormat("/Create /RU SYSTEM /SC 0 /ST 1 /TN 2 /TR \"\\\"3\\\"", strScheduleType.ToUpper(), intTimeInterval, strTaskName, strProgramPath);
【讨论】:
【参考方案3】:我想使用 %ProgramFiles(x86)%
我的解决方案:
set taskrun="%ProgramFiles(x86)%\foo\bar.exe"
schtasks /create /TN FooBar /TR \"%taskrun%\" /SC ONLOGON /RL HIGHEST /F
【讨论】:
schtasks /Create /SC DAILY /TN abc /TR "\"C:\Documents and Settings\All Users\Desktop\XXX.exe\"" /ST 17:46:00。帮我完成这项任务。它没有运行 @ZapSwami:任务注册了吗?权限/凭据是否正常? (exe 在所有用户下)/V1
switch 有帮助吗?以上是关于如何使用 SCHTASKS 正确引用文件路径的主要内容,如果未能解决你的问题,请参考以下文章