【发布时间】:2008-12-11 18:35:05
【问题描述】:
我们正在以编程方式安排任务。但是,要调度的可执行文件可以安装在包含空格的路径中。即c:\program Files\folder\folder\文件夹program\program.exe
当我们将此路径作为参数提供给任务调度程序时,它无法启动,因为它找不到可执行文件。显然需要用引号 (") 括起来。
我们遇到的问题是,即使我们将路径作为参数传递时用引号括起来(cmd +“\”+路径+“\”),它仍然没有在使用的路径中包含引号安排任务。
有人知道如何强制将引号包含在路径中吗?
编辑:回复评论:
我们有同样的想法,这就是问题所在。 ~1 格式基于文件夹的索引,所以如果说你有这 3 个文件夹:
Program Applications
Program Files
Program Zips
那么路径就是:progra~2
现在,如果您说这些文件夹超过 10 个,则路径可能如下所示:progr~12。
现在,并不是说这不是一个可行的解决方案,而是必须计算文件夹以找到正确的文件夹,然后使用索引来构建路径有点麻烦,而且 IMO 不太干净。
我们希望有更好的方法。
编辑 2:添加了适用的代码 sn-p
您要求提供代码:这就是我们构建传递给调度程序的 Args 字符串的方式:
string args = "/CREATE /RU SYSTEM /SC " + taskSchedule + " /MO " + taskModifier + " /SD " + taskStartDate + " /ST " + taskStartTime + " /TN " + taskName + " /TR \"" + taskSource + "\"";
其中 taskSource 是应用程序的路径。
【问题讨论】:
-
您说的这个任务计划程序是什么?你是如何调用它的?请给代码。
-
您说的这个任务计划程序是什么?恕我直言,它似乎正在错误地解析您的有效命令行参数。
-
"那么路径将是:progra~2" - 不一定是 progra~2。这取决于先创建哪个。一旦创建它就不会改变,即使它可能以其他方式排序。
-
正确,我只是想简单解释一下为什么这可能是一个问题而不是一个可行的解决方案。