У меня есть этот код
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 буквами в правильную папку.
Так что нет, мне НЕ нужно создавать каталог, а перемещать его в уже созданный каталог.