使用路径中的空格计划任务

时间:2008-12-11 18:35:05

标签: c# .net .net-2.0 c#-2.0

我们正在以编程方式安排任务。但是,要调度的可执行文件可以安装在具有空格的路径中。即c:\ program Files \ folder \ folder \ folder program \ program.exe

当我们将此路径作为参数提供给Tasjk Scheduler时,它无法启动,因为它无法找到可执行文件。它显然需要用引号括起来(“)。

我们遇到的问题是,即使我们将路径作为参数(cmd +“\”+ path +“\”)传递给引号时,它仍然不包含所用路径中的引号安排任务。

任何人都知道如何强制将引号包含在路径中?

编辑:回答评论:

我们有同样的想法,这就是问题所在。 〜1格式基于文件夹的索引,所以如果说你有这3个文件夹:

Program Applications
Program Files
Program Zips

然后路径将是:progra~2

现在,如果你说这些文件夹中有超过10个,那么路径可能看起来像:progr~12。

现在,并不是说这不是一个可行的解决方案,但是必须计算文件夹以找到合适的文件夹,然后使用索引来构建路径,这有点麻烦而且不是很干净的IMO。

我们希望有更好的方法。

编辑2:添加了适用的代码段

您要求代码:这是我们构建传递给调度程序的Args字符串的方式:

string args = "/CREATE /RU SYSTEM /SC " + taskSchedule + " /MO " + taskModifier + " /SD " + taskStartDate + " /ST " + taskStartTime + " /TN " + taskName + " /TR \"" + taskSource + "\"";

其中taskSource是应用程序的路径。

5 个答案:

答案 0 :(得分:2)

看来你正在使用schtasks.exe - 我花了更长的时间才弄明白而不是找到答案!更多细节请! :)我找到了a quick google search

的答案

试试这段代码:

string args = "/CREATE /RU SYSTEM /SC " + taskSchedule + " /MO " + taskModifier + " /SD " + taskStartDate + " /ST " + taskStartTime + " /TN " + taskName + " /TR \"\\\"" + taskSource + "\""

它在TR参数值的前面添加了一个\“。

答案 1 :(得分:0)

你可以用progra~1替换程序文件 和文件夹程序到文件夹~1(前6个字母和〜1)让它工作,直到有人发布正确的答案

答案 2 :(得分:0)

你能展示代码吗?

即。使上面例子中的路径为“path”(带引号),然后进行调用

这也可能有所帮助 http://www.jguru.com/faq/viewquestion.jsp?EID=768691

答案 3 :(得分:0)

猜测短名称不是一个好方法,因为它是一个实现细节,并且可以随着每个Windows版本而改变。

如果您需要简称,请提出要求:http://www.c-sharpcorner.com/UploadFile/crajesh1981/RajeshPage103142006044841AM/RajeshPage1.aspx

答案 4 :(得分:-1)

将批处理文件放在没有空格的位置。

在批处理文件中,运行包含空格的程序命令。