在命令行参数中传递应用程序的路径

时间:2012-04-16 04:36:34

标签: c# command-line-arguments

在我的应用程序中,我传递了一些命令行参数来安排任务 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

1 个答案:

答案 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?