.bat(バッチファイル)でファイル名先頭に連番を付加する
ソースコード
numbering.bat
@echo off
@setlocal enabledelayedexpansion
set num=0
for %%i in (*) do (
rem ソースファイル自身を対象に取らないために
if not %%i==%~nx0 (
ren %%i !num!_%%~nxi
set /a num+=1
)
)
使い方
- 連番を振りたいファイル群のあるフォルダにソースファイルを置く
- ソースファイルを実行する
for文内での変数の遅延展開について
ren %%i !num!_%%~nxi
で!
を%
に変えるとどうなるか
時系列
-
num
の値が0に設定される - `for'のループが3つ全て展開される
-
ren %%i %num%_%%~nxi
はren %%i 0_%%~nxi
となる - 展開された
for
のループが1つ実行される -
num
が1増加する
num
の値が更新される前に、全てのループの展開が終了しているのがミソで、これによってループが全てnum
の初期値0によって実行されることになってしまう。だから全ファイルの先頭が0になる。
Author And Source
この問題について(.bat(バッチファイル)でファイル名先頭に連番を付加する), 我々は、より多くの情報をここで見つけました https://qiita.com/ziguzaku/items/9714b8f4432b7be22983著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .