1

私のアプリケーションでは、タスクをスケジュールするためにいくつかのコマンドライン引数を渡しています。
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 ますか?

4

1 に答える 1

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

同様の質問と回答:「schtasks」が私の仕事を実行しないのはなぜですか?

于 2012-04-16T04:50:17.167 に答える