Maikl_relax |
31-03-2015 20:32 2490163 |
Хитрое перемещение файлов рекурсивно
Вложений: 1
Здравствуйте!
Есть Папка "Контрагенты" в ней 517 папок по имени. В каждой из них 12 папок:
1) 11 шаблонных папок с городами, в каждой еще некоторая структура (не более 3 уровней)
2) папка 2015 (не пустая)
необходимо переместить в каждом контрагенте все файлы *.* из 1) в корень папки 2015 (2). Только файлы! После перемещения удалить папки 1) (со всей структурой)
Прошу помощи. Нужен пакетник (cmd, bat)
|
приблизительно так
Код:
for /F %%d in ('dir /B /AD') do (
if not 2015==%%~nd (
for /F %%f in ('dir /B /A-D %%d') do (
copy %%f 2015\*.*)
))
!Внимание! не проверял как оно работает, возможно что никак, с телефона писал, проверить негде.
|
Maikl_relax |
02-04-2015 15:59 2490975 |
Elven
Спасибо!
Получилось следующее решение
Код:
@echo off
:: путь папки.
set "folder=T:\ТОРГОВЫЙ ДОМ \ОБОСОБЛЕННЫЕ ПОДРАЗДЕЛЕНИЯ\! КОНТРАГЕНТЫ"
pushd "%folder%"
for /d %%i in (*) do (
pushd "%%i"
for /d %%j in (*) do if "%%j" neq "2015" (
for /f "delims=" %%k in ('2^>nul dir/a-d/b/s "%%j"') do (
move/y "%%k" "2015"
)
rd/q/s "%%j"
)
popd
)
popd
exit/b
правда файлы с одинаковым именем перезаписывает, но потеря пары файлов не критично для моего случая =)
|
Цитата:
Цитата Maikl_relax
правда файлы с одинаковым именем перезаписывает »
|
Maikl_relax, об этом никто из просящих почему-то не задумывается — до факта. А исполняющим уже наосто… надоело раз за разом, раз за разом, раз за разом спрашивать, как следует поступать, если имена файлов совпадут.
|
Время: 23:53.
© OSzone.net 2001-