2011-04-29 94 views
5

我正在编写一个小应用程序,该应用程序使用SCHTASKS创建计划任务来生成批处理文件的内容。但是,我根本无法使文件路径正常工作。我需要另一双眼睛。如何使用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文档,我想我已经正确地形成了。但是,它输出失败:

ERROR: Invalid syntax. Mandatory option '/sc' is missing.
Type "SCHTASKS /CREATE /?" for usage.
The system cannot find the path specified.

我可以在这里使用一些建议。

回答

8

你需要逃避与这样的插入符号的符号:

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 
+0

在我的机器上(Windows 7),虽然插入符号有助于注册任务,但实际上并未运行。但是,添加'/ V1'开关使其全部按预期工作:] – mousio 2011-05-01 21:31:24

+0

非常好 - 非常感谢! – Ducain 2011-05-02 14:38:03

+0

你在哪里添加/ v1 – Raj 2011-06-29 10:51:04

1

我想用的%ProgramFiles(x86)的%

我的解决办法:

set taskrun="%ProgramFiles(x86)%\foo\bar.exe" 
schtasks /create /TN FooBar /TR \"%taskrun%\" /SC ONLOGON /RL HIGHEST /F 
+0

schtasks/Create/SC DAILY/TN abc/TR“\”C:\ Documents and Settings \ All Users \ Desktop \ XXX.exe \“”/ ST 17:46 :00。帮助我完成这项任务。它没有运行 – Raj 2011-06-29 10:59:43

+0

@ZapSwami:任务是否被注册?权限/凭证是否可以使用? (exe是在所有用户下)[/ V1'开关](http://stackoverflow.com/questions/5837761/schtasks-how-to-properly-quote-file-path/5850720#5850720)有帮助吗? – mousio 2011-06-29 14:33:03

3

我来了在这个问题中,我解决这个问题的方式是改变创建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); 
相关问题