指定ファイルを開くバッチファイルを「管理者として実行」するとファイルが開いてくれないことがあるのはなぜ?

同じフォルダ内に「test.bat」と「test.txt」が置いてあるとします。
下記コードを書いている「test.bat」をダブルクリックして実行すると「test.txt」が開きますが「管理者として実行」するとエラーが出て「test.txt」を開くことができません。

@echo off
start "" test.txt

これは、バッチファイルを普通に実行するとバッチファイルが置かれている場所が起点として実行されますが「管理者として実行」すると起点となる場所が、 C:\Windows\System32 に変わってしまうためなのです。
「管理者として実行」した場合でも起点とする場所を変更させないためにはどうするか?それは、下記コードを @echo off の下に付け加えるだけです。


cd /d %~dp0

下記コードをバッチファイルに書き込み実行すると普通に実行しても「管理者として実行」しても表示される場所が変わらないことがわかると思います。

@echo off
cd /d %~dp0

echo %cd%
pause


いいなと思ったら応援しよう!