2026年7月5日日曜日

cd /d "%~dp0"

 管理者権限で .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 件のコメント:

コメントを投稿