windowsのバッチファイルでファイルの拡張子を一括変換

for %%i in (*.htm) do @(
  setlocal
    set j=%%i
    set k=!j:~0,-4!.html
    echo %%i !k!
    ren %%i !k!
  endlocal
)

よくある、htm の拡張子からhtmlの拡張子へ変える例。

cmd /v:on

として遅延環境変数を展開するようにしないとちゃんと動かないけどね。


にしても調べてみるもんだね。まさかここまでできるとはね。ヘルプは全然役に立たなかったけど。

set /?

すると結構色々できることが判明。で、ちょっと試しにやってみました。
他にも,cmd,for,ifとかの/?を見てみると結構書いてあって面白いかも。