*[PC]バッチいろいろメモ

いろんなバッチを作っていたら、どこに何があるのか
わからなくなってきたので自分用メモ

環境変数の遅延展開(!環境変数名!)を使用するには次の一文が必要

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