タスクは、wmic process call create "c:\folder\app.exe"
を使用してプログラムを起動し、app.exe
にapp.exe home folder tree
内の独自のサポートファイルにアクセスさせることです。
以下のバッチスクリプトは、WMICが作業ディレクトリをサイレントに変更し、サポートファイルが見つからない場合の問題を示しています。
このスクリプトは、one.bat
という2番目のバッチファイルを作成します。このファイルは、同じフォルダーからurl.txt
ファイルを入力するだけで、コンソールにwww.google.com
を表示します。
wmic
を使用してプロセスを作成する場合、wmicは作業ディレクトリをサイレントに変更してone.bat
が見つからないようにします。フルパスをd:\abc\one.bat
として指定すると、one.bat
が起動します。ただし、入力するファイルurl.txt
が独自のフォルダーに見つかりません。
WMIC.EXEファイルを同じフォルダーにコピーすると、同じように失敗します。
@echo off
set "folder=d:\abc"
cd /d "%folder%"
(
echo.@echo off
echo.type url.txt
echo.pause
)>one.bat
(
echo.@echo off
echo.www.google.com
)>url.txt
echo this will work to launch the one.bat but the working directory is wrong and the file can't be found
wmic process call create "%folder%\one.bat"
pause
echo this will not launch one.bat because it can't be found
wmic process call create one.bat
pause
echo this will not launch one.bat as the working directory is changed
copy "%windir%\system32\wbem\wmic.exe" .
.\wmic process call create one.bat
pause
このコマンドの作業ディレクトリを設定するWMIC
スイッチを知っている人はいますか?
実行
wmic process call create /?
なぜこれなのかについての情報を得るために
wmic process call create "c:\folder\app.exe","c:\folder"
動作するはずです