44

スケジュールされたタスクによって呼び出されるアプリケーションがあります。Windows Server 2003 から Windows Server 2008 に移動しました。2003 では、アプリは実行可能ファイルが置かれたディレクトリで実行されました。2008 年Environment.CurrentDirectory(C#) では、C:\Windows\System32 で実行されていると報告されています。実行ディレクトリを設定するにはどうすればよいですか? コマンドライン展開に schtasks.exe を使用しています。

UPD : インターフェースを通して、アクション編集画面の「開始 (オプション)」フィールドのようです。

UPD : XML ファイルを使用すると役立つように見えますが、XML ファイルを使用しないようにしています。

4

7 に答える 7

86

Windows Server 2008 および 2012 で有効な詳細を追加したかっただけです。多くの人がスクリーン ショットをよりよく理解できるように、ここにスクリーン ショットを示します。
ここに画像の説明を入力

要約すると。スケジュールされたタスクのアクションを作成するときに、[開始 (オプション)] フィールドを設定するオプションがあります (スクリーン ショットでは赤で囲まれています)。これは、プロセスがトリガーされるディレクトリになります。

お役に立てれば!

于 2014-12-10T12:35:31.433 に答える
16

私は最近同じ問題に遭遇しました。私が解決した方法は、schtasksコマンドに/V1スイッチを追加することでした。

/ V1は、ビスタ前の互換性のあるスケジュールされたタスクを作成し、StartInディレクトリに自動的にデータを入力します。

于 2009-04-21T14:02:04.193 に答える
9

次のコマンドを使用して、ディレクトリ内の開始を設定できます

キーは /tr スイッチの \ です。

SCHTASKS /Create /u username /p pswd /ru "NT AUTHORITY\SYSTEM"
  /rp /sc ONSTART /tn task-name /tr "\"D:\name-of-file-to-run\" "
于 2009-02-18T17:53:39.460 に答える
8

コマンドラインではなく、タスクスケジューラUIから(およびXMLを介して)のみ使用できる[コンピューターを起動してこのタスクを実行する...]オプションを設定する方法についての同様の質問に対する私の回答を参照してください。schtasks.exe /create

その要点は次のとおりです。

  1. 経由でタスクを作成するschtasks.exe /create /tn MyTask ...
  2. を介してタスクをXMLにエクスポートしますschtasks.exe /query /xml /tn MyTask > MyTask.xml
  3. XSLTまたは検索/置換を介してこのXMLを更新します
  4. 経由で再インポート(古いタスクを上書き)schtasks.exe /create /tn MyTask /xml MyTask.xml /f

詳細はこちら

于 2009-02-06T18:45:01.617 に答える
2

試すcd /d "<WorkingDirectory>" & schtasks <SchtasksParams>

作業ディレクトリを変更してからschtasksを実行します。

于 2011-12-30T07:58:27.260 に答える
-1

XML設定を必要とせずにアプリでMy.Application.Info.DirectoryPathを使用します。

于 2013-01-28T05:40:13.010 に答える