- Use um para iterar o conteúdo da pasta
%%A
com um padrão que contenha menos um espaço. - Outro
for /f
é necessário para dividir o nome%%A
em duas partes, uma antes o primeiro espaçotokens=1
=%%B
e o restantetokens *
=%%C
. - Se uma pasta com o nome
%%B
não existir, crie-a - Mova o arquivo original
%%A
para a subpasta%%B
com o nome%%C
:: Q:18\SU_1330475.cmd
@Echo off
PushD C:\folder
for %%A in ("* *.*") do for /f "tokens=1*" %%B in ("%%A") do (
If not exist "%%B" MD "%%B"
Move "%%A" "%%B\%%C"
)
PopD
> tree /f
C:.
│ SU_1330475.cmd
│
└───folder
├───HorseRiding2017
│ certificate.pdf
│ guests.txt
│ jumping.mov
│ spirit1.jpg
│
└───Wedding2018
entrance.mov
img20929.jpg
registry of guests.pdf