管理者権限で .cmd を実行すると「ファイルが見つかりません」と表示される場合、原因の多くはカレントディレクトリが変わることです。
バッチの先頭に次を追加します。
cd /d "%~dp0"
%~dp0 は、実行中の .cmd ファイルがあるフォルダーを表します。
%~dp0 の分解
たとえば E:\Tool\Install.cmd を実行した場合:
変数 結果
%0 E:\Tool\Install.cmd
%~d0 E: (ドライブ)
%~p0 \Tool\ (フォルダー)
%~n0 Install (名前)
%~x0 .cmd (拡張子)
%~dp0 E:\Tool\ (最もよく使う)
%~nx0 Install.cmd
%~f0 E:\Tool\Install.cmd
記述 意味
%0 実行中のバッチファイル名
%~f0 バッチファイルのフルパス
%~d0 ドライブレターのみ
%~p0 フォルダー部分のみ
%~dp0 ドライブ+フォルダー(最重要)
%~n0 ファイル名のみ(拡張子なし)
%~x0 拡張子のみ
%~nx0 ファイル名+拡張子
%CD% 現在の作業フォルダー
%TEMP% 一時フォルダー
%USERNAME% ログオンユーザー名
%COMPUTERNAME% PC名
----------------------------------------------------------------------
@echo off
cd /d "%~dp0"
rem フォルダがなければ作成
if not exist "%COMPUTERNAME%" (
mkdir "%COMPUTERNAME%"
)
rem ドライバーをエクスポート
pnputil /export-driver * "%COMPUTERNAME%"
pause
rem ドライバーをインポート
pnputil /add-driver "%COMPUTERNAME%\*.inf" /subdirs /install
pause
0 件のコメント:
コメントを投稿