CMDのforのバグ

バグと言っていいのかどうか。ワイルドカード処理中にファイル名を変えると意図しない動作。

D:\Temp>dir /b
aaa.txt
bbb.txt
ccc.txt

D:\Temp>for %A in (*.txt) do ren %A ZZ%A
(実行結果)
D:\Temp>ren aaa.txt ZZaaa.txt
D:\Temp>ren bbb.txt ZZbbb.txt
D:\Temp>ren ccc.txt ZZccc.txt
D:\Temp>ren ZZaaa.txt ZZZZaaa.txt
D:\Temp>

3つのファイルなのにループを3回回った後、リネーム後のファイルをさらに処理する。

いろいろ試すと、「ワイルドカードが複数のファイルにマッチするときに、その(辞書順での)最後のファイル以外の1つ以上のファイルを、最後のファイルより辞書的に大きいファイル名にリネームして、かつ、最後のファイルもリネームした場合」のようです。