バッチファイルをUACに対応させるためのたったひとつのコマンド

UACが有効になった状態でバッチファイルを実行すると、使用するコマンド*1によっては正しく動作しません。そのため、実行する際には右クリック→「管理者として実行」から起動することで正しく動くようになるのですが、例えばバッチファイルの中にバッチファイルと同じフォルダにあるファイルやフォルダを参照する処理があったとするとエラーで処理が続行出来ないことがあります。


その場合はバッチファイルの先頭(もしくは@ECHO OFFのあと)に以下の一文を入れることで対応出来ます。

CD /D "%~dp0"


「管理者として実行」からバッチファイルを起動すると、実行時ディレクトリがバッチファイルのあるフォルダから%windir%\system32へと移動するのですが、このコマンドを入れることでバッチファイルのあるフォルダへと強制的に移動します。
大した話ではないのですが、意外にはまる人が多いようなので備忘のために書いておきます。

*1:regeditやregなどのレジストリ操作のコマンドなどなど