Войти

Показать полную графическую версию : [решено] перемещение по маске из подкаталогов в корень


shadowbat
24-05-2010, 16:19
имеется
C:\Papka\001\Data\1\*.txt
C:\Papka\001\Data\2\*.txt
C:\Papka\001\Data\3\*.txt
C:\Papka\001\Data\4\*.txt
...

C:\Papka\002\Data\1\*.txt
C:\Papka\002\Data\2\*.txt
C:\Papka\002\Data\3\*.txt
C:\Papka\002\Data\4\*.txt
...

(по имени все *.txt разные, пронумерованные)

нужно переместить *.txt так:

C:\001\Data\*.txt

C:\002\Data\*.txt

...


нужно запустив BAT из C:\Papka\ - переместить файлы *.txt (которые находятся только в подпапках \Data\1, 2, 3....) - переместить их в папку Data. т.е. BAT должен сканировать все папки и найдя папку Data переместить из ее подкаталогов в саму папку Data все *.txt файлы

El Sanchez
24-05-2010, 18:02
shadowbat,


@Echo Off
For /F %%A In ('Dir /B /S /AD Data') Do For /F "Tokens=*" %%B In ('Dir /B /S %%A\*.txt') Do Move /Y "%%B" "%%A" 1>nul 2>&1

shadowbat
24-05-2010, 18:29
El Sanchez, не хочет работать если папки с русскими именами =), например так:
C:\001 привет\Data\*.txt
C:\002 привет\Data\*.txt

(сохранение в Bred2k или chcp 1251 + chcp 866 не помогли)

El Sanchez
24-05-2010, 20:05
shadowbat, пардон


@Echo Off
For /F "Tokens=*" %%A In ('Dir /B /S /AD Data') Do For /F "Tokens=*" %%B In ('Dir /B /S "%%A\*.txt"') Do Move /Y "%%B" "%%A" 1>nul 2>&1

shadowbat
24-05-2010, 20:18
El Sanchez, Благодарю! :bow: как по маслу!




© OSzone.net 2001-2012