変数の展開は、forループを含むコマンド行を読み込んだ時に一度行われます。
つまりループを回るごとに改めて変数展開が行われるわけではありません。
それを実現するために「遅延環境変数の展開」という機能があります。
この機能はsetlocal enabledelayedexpansion
で有効になります。
遅延環境変数の展開には%変数名%
の代わりに!変数名!
を使用します。
setlocal enabledelayedexpansion
for %%f in (*.zip) do (
REM 日付を取得
SET YYYYMMDD=%date:/=%
REM ファイル名取得
SET filename=%%~nf
REM ファイル名変更
SET newfileName=!YYYYMMDD!_!filename!
rename "%%f" "!newfileName!.zip"
)
同時に一カ所修正しました。
for %%f in (%*)
これは
for %%f in (*.zip)
ですね。
それと、数カ所に全角スペースがありました。これも半角スペースに直しました。
Like!