2

ログオン時に実行しようとしているプログラムがあります。このプログラムは、同じディレクトリにあるファイルに依存しています。コマンドラインからプログラムを手動で実行することにより、すべてが正常に実行されます。ただし、プログラムを実行するタスクをスケジュールすると、プログラムから、必要なファイルが見つからないというエラーが表示されます。私の質問は次のとおりです: 1.) スケジュールされたタスクの作業ディレクトリはプログラムの場所ですか? 2.) そうでない場合、作業ディレクトリをプログラムの場所に設定するにはどうすればよいですか?

タスクをスケジュールするために使用しているコードは次のとおりです。

SCHTASKS /Create /TN "Test" /TR $MyLocation\Test.exe /sc onlogon /RL Highest

ここで、「$MyLocation」は、プログラムのディレクトリを参照するように設定した powershell 変数です。

4

2 に答える 2

0

私は過去にバッチファイルを使用してこれを回避しました。バッチファイルで使用できる巧妙なトリックがあり、バッチファイルが配置されているディレクトリが提供されます。したがって、必要なアプリを非常に簡単に実行できます。次の内容のバッチファイルを作成し、アプリの隣のディレクトリに配置してから、そのパスを/TR引数の値として設定します。

%~dp0\Test.exe

厳密に言えば、%~dp0とにかく末尾のバックスラッシュが含まれているため、バックスラッシュは必要ありません。ただし、バッチファイルが少し読みやすくなると思います。

于 2012-06-06T10:22:14.633 に答える
0

スクリプトを実行して $MyLocation をパラメーターとして送信すると、次のようなタスクがセットアップされます。

 $cmdFile = "$MyLocation\Test.cmd"
 New-Item $cmdFile -type file
 "cd $MyLocation" >> $cmdFile
 "powershell -command '& {$($MyLocation)\Test.exe}'" >> $cmdFile
 SCHTASKS /Create /TN "Test" /TR $cmdFile /sc onlogon /RL Highest

ギスリ

于 2012-06-06T16:35:47.237 に答える