在我的应用程序中,我传递了一些命令行参数来安排任务 str是一个字符串,经过一些操作后变成了
/create /tn StartIE /tr "C:\Program Files\Internet Explorer\iexplore.exe http://abc.com" /sc onlogon
然后我开始一个过程:
ProcessStartInfo ps = ProcessStartInfo("schtasks");
ps.Arguments = str;
Process.Start(ps);
当我查看计划任务的任务计划程序时,我将计划任务操作作为:
C:\Program
and the Arguments as: Files\Internet Explorer\iexplore.exe http://abc.com
所以,问题在于程序文件中的空间。我应该如何纠正事情,以便实际的程序仍然是
C:\Program Files\Internet Explorer\iexplore.exe http://abc.com
和Arguments = http://abc.com
?
答案 0 :(得分:0)
我认为您需要在转义中传递引号,以便schtasks
进程可以“提取”它们。你的字符串最终应该包含:
/create /tn StartIE /tr "C:\Program Files\Internet Explorer\iexplore.exe http://abc.com" /sc onlogon
但我怀疑它实际上包含:
/create /tn StartIE /tr C:\Program Files\Internet Explorer\iexplore.exe http://abc.com /sc onlogon
这意味着当您创建它时,您应该定位:
/create /tn StartIE /tr \""C:\Program Files\Internet Explorer\iexplore.exe http://abc.com\"" /sc onlogon
类似的问题和答案:Why "schtasks" does not run my job?