いろんなバッチを作っていたら、どこに何があるのか
わからなくなってきたので自分用メモ
環境変数の遅延展開(!環境変数名!)を使用するには次の一文が必要
SETLOCAL enabledelayedexpansion
<ファイル名の一部を切り出して別ファイルの名前にする>
for /f %%1 in ('dir /b v7.1.*reflect_home_setup_x64.exe') do set VERSION=%%1 echo %VERSION:~0,9% set RARNAME=Macrium Reflect %VERSION:~0,9% 日本語化ファイル .rar "C:\Program Files\WinRAR\WinRAR.exe" a -ibck -k -ep1 -rr3% -md256m -AGYYYYMMDD "!RARNAME!" "Macrium Reflect v7 日本語化ファイル"
<レジストリのキー値をチェックする>
:VERSION_CHECK for /f "tokens=1,2*" %%1 in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\MacriumReflect" /v DisplayVersion') do if "%%1"=="DisplayVersion" set VERSION=%%3 if {!VERSION!} == {7.1} GOTO EDITION_CHECK echo !VERSION! "パッチ対象のバージョンではありません。処理を中断します。" pause exit /B
<稼働中のWindowsの32/64bit版判定>
:WINBIT_CHECK set |findstr ^ProgramFiles(x86)= >nul 2>nul if not {%ERRORLEVEL%} == {0} GOTO x86_PATCH :x64_PATCH set PATCHNAME=!PATCHNAME! x64 Patch.exe GOTO BACKUP_CHECK :x86_PATCH set PATCHNAME=!PATCHNAME! x86 Patch.exe