Имам този код
pushd "C:\Folders\"
for %%j in (*) do (
md "%%~nj"
move "%%j" "%%~nj"
)
popd
pause
exit
Това премества файлове със същото име в папка със същото име, ако папката не съществува, ще създаде нова папка. ОК страхотно.
Този проблем, който имам, е, че искам същата функция като по-горе, но трябваше да погледна само първите 4 знака. напр.
1234 - sample.jpg
1234 - sample-sm.jpg
1234 - sample-new.jpg
1234 - sample-right.jpg
1235 - sample.jpg
1234 файла ще бъдат преместени в същата папка, тъй като първите 4 знака са еднакви, но 1235 ще бъдат преместени в нова папка, тъй като юмрукът за символи е различен.
Благодаря ти
@echo off
setlocal enabledelayedexpansion
pushd "C:\Folders\"
for %%a in (*) do (
set fldr=%%~na
set fldr=!fldr:~0,4!
md "!fldr!"
move "%%a" "!fldr!"
)
popd
pause
exit
Той обаче създава нови папки с първите 4 букви и премества файловете в тези създадени папки... Той премества всичко със същите първи 4 букви в правилната папка.
Така че не, трябва ми НЕ, за да направя директория, а да я преместя във вече създадената директория.