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つ以上のファイルを、最後のファイルより辞書的に大きいファイル名にリネームして、かつ、最後のファイルもリネームした場合」のようです。