Windowsバッチファイル_管理者権限を確認してファイルを削除する

C:\Program Files\配下のアプリインストールフォルダにゴミファイルが残ってしまったので、定期的に完全削除したいためバッチファイルを用意します。


作成したバッチファイル

処理概要

バッチファイルの実行時には、管理者権限であることを確認する。
削除という破壊的(復元できない)処理を実行するため、実行前に確認をする。

バッチファイル


@echo off
setlocal

set APP_PATH="C:\Program Files\CompanyName\AppName"

net session >nul 2>&1
if %ERRORLEVEL% equ 0 (
  REM 管理者権限で実行しています。
) else (
  echo ERROR: 管理者権限で実行していません。
  echo 右クリックから管理者権限で実行してください。
  pause
  exit /b 1
)

echo アプリの古いファイルを削除します。
set /p answer="実行してよろしいでしょうか(y/n)?  : %answer%"
if "%answer%"=="y" (
  echo 古いファイルを削除します...
) else if "%answer%"=="n" ( 
  echo "cancel"
  exit /b 1
)else (
  echo "other key"
  exit /b 1
)

REM 
REM ファイル削除
REM 
del /q /s %APP_PATH%
if not %ERRORLEVEL% == 0 (
  echo ERROR: フィル削除に失敗しました。
  echo 本バッチ提供者へ連絡ください。
  exit /b 1
)else (
  echo 正常に完了しました。
)

endlocal
pause
exit /b 0

バッチファイル処理の解説

管理者権限での実行を確認する

C:\Program Files\配下のフォルダを操作するには、管理者権限が必要です。
管理者権限で実行していることを確認するために。net sessionコマンドを実行します。


net session >nul 2>&1
if %ERRORLEVEL% equ 0 (
  REM 管理者権限で実行しています。
) else (
  echo ERROR: 管理者権限で実行していません。
  echo 右クリックから管理者権限で実行してください。
  pause
  exit /b 1
)

ファイル削除

delコマンドに「/s」オプションを指定することでフォルダは削除せずに内部のファイルのみ削除するように指定しています。


del /q /s %APP_PATH%

フォルダを削除したいときは、「rmdir」もしくは短縮形の「rd」コマンドを用います。
rdコマンドを実行すると、指定パスのフォルダ(親フォルダ)も削除されます。


rd /q /s %APP_PATH%

関連ページ