スケジュールされたタスクによって呼び出されるアプリケーションがあります。 Windows Server 2003からWindows Server 2008に移行しました。2003年、アプリは実行可能ファイルが存在するディレクトリで実行されました。 2008年Environment.CurrentDirectory
(C#)は、C:\ Windows\System32で実行されていることを報告します。実行中のディレクトリを設定するにはどうすればよいですか?コマンドライン展開にschtasks.exeを使用しています。
[〜#〜] upd [〜#〜]:インターフェースからは、アクション編集画面の「開始(オプション)」フィールドのようです。
[〜#〜] upd [〜#〜]:XMLファイルを使用すると役立つかもしれませんが、XMLファイルを使用しないで探しています。
最近、同じ問題に出会いました。私が解決した方法は、/ V1スイッチをschtasksコマンドに追加することでした。
/ V1は、Vistaより前の互換性のあるスケジュール済みタスクを作成し、Start Inディレクトリに自動的に入力します。
Windows Server 2008および2012に有効な詳細を追加したかっただけです。多くの人がスクリーンショットをよりよく理解できるように、ここにスクリーンショットがあります。
まとめると。スケジュールされたタスクのアクションを作成するとき、「開始(オプション)」フィールドを設定するオプションがあります(スクリーンショットで赤く丸められています)。これは、プロセスがトリガーされるディレクトリになります。
お役に立てれば!
同様の質問に対する私の答え を参照してください。タスクスケジューラUI(およびXMLを介して)からのみ利用できる「このタスクを実行するためにコンピューターを起動する...」オプションを設定する方法、 schtasks.exe /create
コマンドラインではありません。
ナットとボルトは次のとおりです。
schtasks.exe /create /tn MyTask ...
でタスクを作成しますschtasks.exe /query /xml /tn MyTask > MyTask.xml
を介してタスクをXMLにエクスポートしますschtasks.exe /create /tn MyTask /xml MyTask.xml /f
を介して再インポート(古いタスクを上書き)詳細はこちら 。
cd /d "<WorkingDirectory>" & schtasks <SchtasksParams>
作業ディレクトリを変更してからschtasksを実行します。
人々がXMLアプローチのこの答えを見ることができることを願っています(率直に言って、それはよりクリーンな方法だと思います。も))。
ステップ1:すべてのタスク設定を設定するXMLファイルを作成します、XML要素の詳細についてはいくつかの場所:
ステップ2:タスクが実行される「場所」に固有(コマンドラインでスクリプトが開始される開始ディレクトリのように、これはOPの質問に直接関連しています。 ..次のようにパラメータを設定する必要があります...
<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.Microsoft.com/windows/2004/02/mit/task">
<RegistrationInfo>
<Date>2012-08-19T16:49:14.6182</Date>
<Author>YOUR-COMPUTER-DOMAIN\YOUR-USERNAME</Author>
</RegistrationInfo>
... a bunch of other stuff in between here ....
<Actions Context="Author">
<Exec>
<Command>C:\PythonEXE\mini_program_test.exe</Command>
<Arguments></Arguments>
<WorkingDirectory>C:\Some\where\here\</WorkingDirectory>
</Exec>
</Actions>
</Task>
上記に注意してくださいWorkingDirectoryパラメータには引用符がありません-私は以前にその間違いを犯しました。
ステップ3:XMLを介してこの新しいタスクを作成するためにschtasks.exeを使用するため、詳細についてはこちらをご覧ください: https:/ /msdn.Microsoft.com/en-us/library/bb736357.aspx
ステップ4:Windowsのコマンドラインで、このようなものを実行します(XMLの準備ができたら)
C:\>schtasks /CREATE /TN "TASK-NAME-HERE" /RU "YOUR-USERNAME" /RP "YOUR-PASSWORD" /XML C:\YOUR-XML-FILE-LOCATION\ready.xml
これが少し役立つことを願っています-楽しんでください!
XML設定を必要とせずに、アプリでMy.Application.Info.DirectoryPathを使用します。