Здравствуйте
как можно перенести все файлы из подкаталогов в текущей %CD% папке? и добавить к именам файлов имена папок, в которых они ранее лежали
например есть структура папок
C:\Каталог\Папка1\файл1.txt
C:\Каталог\Папка2\Папка3\файл2.jpg
нужно закинуть bat файл в папку "Каталог" и запустить
в результате он переименовывает и переносит все файлы в "корень", удаляет старые пустые папки.
Результат
C:\Каталог\Папка1-файл1.txt
C:\Каталог\Папка2-Папка3-файл2.jpg
CMD/BAT - [решено] Перенести и переименовать файлы из подкаталогов
-
Georgio
Re: CMD/BAT - [решено] Перенести и переименовать файлы из подкаталогов
Цитата shadowbat:
нужно закинуть bat файл в папку "Каталог" и запустить
в результате он переименовывает и переносит все файлы в "корень", удаляет старые пустые папки.
Код:
нужно закинуть bat файл в папку "Каталог" и запустить
в результате он переименовывает и переносит все файлы в "корень", удаляет старые пустые папки.
CMD/BAT - [решено] Перенести и переименовать файлы из подкаталогов
Код:
Код: Выделить всё
@echo off
subst #: .&& pushd #:\|| exit/b 1
for /f "delims=" %%i in ('2^>nul dir/a-d/b/s') do (
for /f "tokens=* delims=#:\" %%j in ("%%i") do (
set x=%%j
>nul 2>&1 cmd/v/c move "%%i" "!x:\=-!"
)
)
rem Если в каких-то папках останутся неперемещённые файлы
rem (скрытые, системные или занятые каким-то процессом),
rem то такие папки удалены не будут.
for /f "delims=" %%i in ('2^>nul dir/ad/b/s') do (
for /f %%j in ('2^>nul dir/a-d/b/s "%%i"^| find/c /v ""^|findstr/x 0') do (
2>nul rd/q/s "%%i"
)
)
popd& subst/d #:
exit/b 0-
shadowbat
Re: CMD/BAT - [решено] Перенести и переименовать файлы из подкаталогов
Georgio это превосходно! спасибо