如何使用 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 正确引用文件路径的主要内容,如果未能解决你的问题,请参考以下文章

绝对路径和相对路径

如何正确引用nuget包,这样就不会对路径进行硬编码

如何通过asp.net schtasks将参数传递给bat文件

如何使用 Node 和 Webpack 正确加载照片?

如何迁移docker磁盘文件路路径 (or 扩容)

如何迁移docker磁盘文件路路径 (or 扩容)