for /D /r %%f in (*) do (
ist eine ungültige Kombination, siehe Ausgabe mit einem Echo.
- Sie könnten zwei stapeln
for /D
, um zuerst diepicsfrom..
und dann die Unterordner oder zu durchlaufen - Eine
for /f
Parsing-Ausgabe, die mit einem regulären Ausdruck ($ -Anker am Ende) gefiltert wurde, um nur gewünschte Unterordner mit einem Suchstring abzugleichen:
@Echo off Set "Folders=view_pictures$ personal_pictures$ scenic_pictures$" For /f "delims=" %%F in ( 'Dir /B/S/AD ^|Findstr /I "%Folders%"' ) Do Ren "%%~fF" "2017_%%~nxF"
Musterbaum auf meinem RAM-Drive A:
> tree A:\ └───root path ├───picsfromA │ ├───2017_personal_pictures │ └───2017_view_pictures ├───picsfromB │ ├───2017_personal_pictures │ ├───2017_scenic_pictures │ └───2017_view_pictures ├───picsfromC │ ├───2017_personal_pictures │ └───2017_scenic_pictures ├───picsfromD │ └───2017_personal_pictures └───picsfromN └───2017_scenic_pictures
BEARBEITEN Ausgabe von for /D /r %%A in (*) do Echo:%%A
auf meinem System
A:\root path\picsfromA A:\root path\picsfromB A:\root path\picsfromC A:\root path\picsfromD A:\root path\picsfromN A:\root path\picsfromA\2017_personal_pictures:A:\root path\picsfromN A:\root path\picsfromA\2017_view_pictures:A:\root path\picsfromN A:\root path\picsfromB\2017_personal_pictures:A:\root path\picsfromN A:\root path\picsfromB\2017_scenic_pictures:A:\root path\picsfromN A:\root path\picsfromB\2017_view_pictures:A:\root path\picsfromN A:\root path\picsfromC\2017_personal_pictures:A:\root path\picsfromN A:\root path\picsfromC\2017_scenic_pictures:A:\root path\picsfromN A:\root path\picsfromD\2017_personal_pictures:A:\root path\picsfromN A:\root path\picsfromN\2017_scenic_pictures:A:\root path\picsfromN