我们正在以编程方式安排任务。但是,要调度的可执行文件可以安装在具有空格的路径中。即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是应用程序的路径。
答案 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)
将批处理文件放在没有空格的位置。
在批处理文件中,运行包含空格的程序命令。