@echo off
openfiles >nul 2>&1
if errorlevel 1 (
echo "管理者権限で実行してください。"
pause
exit
)
:: これ以降に処理を書く
echo "管理者権限OK"
pause
-
openfiles
は、管理者権限が無い場合失敗し、%errorlevel%
に1
が入ります。画面に出ないよう表示は捨てています。 - その次の
if
構文により、管理者権限が無い場合メッセージを表示し確認後、終了します。管理者権限がある場合、以降の処理に進みます。
if
構文については、「if /?
」でヘルプ見れるので、応用したい方は見てみてください。
%errorlevel%
としなくても、専用の命令が用意されているので、それを使っています。
また、コマンドプロンプトは大文字小文字区別されませんが、基本大文字なので、気になる人は大文字で記述してください。
強制的に昇格ダイアログ出す方法も、あるにはあるようですが、vbs を使ったりするので、これが一番シンプルだと思います。
かなり参考にさせて頂いたリンク(ほぼ、そのままコピペに近い)
バッチファイルが管理者権限で動作しているか確認 - 有限会社ルートリンクス
https://www.rootlinks.net/2014/08/28/%E3%83%90%E3%83%83%E3%83%81%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%8C%E7%AE%A1%E7%90%86%E8%80%85%E6%A8%A9%E9%99%90%E3%81%A7%E5%8B%95%E4%BD%9C%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%81%8B%E7%A2%BA/
【バッチファイル】管理者権限が無い場合に付与して実行 - Qiita
https://qiita.com/YamEiR/items/7f2734510544090611db