CMD/BAT - копирование определенных папок без "мусора"

Аватара пользователя
cher

CMD/BAT - копирование определенных папок без "мусора"

Сообщение cher »

В папке c:\updat есть 4 папки.1,2,3,temp и множество файлов различного расширения.

Надо скопировать только папки 1,2,3 в папку f:\3

Как не копировать папку temp "смог", а вот файлы ... исключить из копирования не могу(маску по названиям даже не пытался-слишком много).(ну лузер в батанике, чеж теперь Изображение )

использовал xcopy и robocopy. через for тоже запутался.

насколько могу судить ... просто не могу "сделать" правильную маску.
Аватара пользователя
xGETSx

Re: CMD/BAT - копирование определенных папок без "мусора"

Сообщение xGETSx »

Код:

Код: Выделить всё

mkdir "f:\3"
copy /Y "c:\updat\1\*" "f:\3\1\*"
copy /Y "c:\updat\2\*" "f:\3\2\*"
copy /Y "c:\updat\3\*" "f:\3\3\*"
pause

Так подойдет?





Код:

Код: Выделить всё

xcopy "c:\updat" "f:\3" /T /E
rm /s "f:\3\temp"

Или нужно скопировать только папки, без содержащихся в них файлов?
Аватара пользователя
cher

Re: CMD/BAT - копирование определенных папок без "мусора"

Сообщение cher »

xGETSx

mkdir не нужен папка существует..


Цитата xGETSx:



Так подойдет? Или нужно скопировать только папки, без содержащихся в них файлов?
CMD/BAT - копирование определенных папок без "мусора"




нет .. надо все содержимое. с подпапками.

скрипт не срабатывает - как понял из за того,что указанны точные папки копирования. их там нет.

надо копировать в пустую папку 3.

да и copy насколько понимаю плохо подходит для копирования папок...

- это так.... моё лузерное мнение. даже не заморачивался с copy.help "сказал" -это для файлов....




Цитата xGETSx:



xcopy "c:\updat" "f:\3" /T /E

rm /s "f:\3\temp"
CMD/BAT - копирование определенных папок без "мусора"




копируются пустые папки с ненужной папкой temp
Аватара пользователя
xGETSx

Re: CMD/BAT - копирование определенных папок без "мусора"

Сообщение xGETSx »

Цитата cher:



скрипт не срабатывает - как понял из за того,что указанны точные папки копирования. их там нет.
CMD/BAT - копирование определенных папок без "мусора"




А я думаю почему так просто Изображение javascript:Sham_ins('%20Изображение%20')





Код:

Код: Выделить всё

xcopy "c:\updat\*" "f:\3\*" /S /E
rd /S "f:\3\temp\*"

Копирует даже пустые папки





Код:

Код: Выделить всё

xcopy "c:\updat\*" "f:\3\*" /S
rd /S "f:\3\temp\*"

Не копирует пустые папки



Еще поиграюсь EXCLUDE, может что и выйдет
Аватара пользователя
cher

Re: CMD/BAT - копирование определенных папок без "мусора"

Сообщение cher »

xGETSx, не забывай про лишние файлы в структуре каталога.

temp исключить из копирования и я могу. а вот файлы нет. Изображение

robocopy влегкую "расправляется" с папками. маску для файлов "написать" не могу/не умею.
Аватара пользователя
xGETSx

Re: CMD/BAT - копирование определенных папок без "мусора"

Сообщение xGETSx »

Тогда только через ROBOCOPY





Код:

Код: Выделить всё

robocopy "c:\updat\*" "f:\3\*" /S /E /XF * /XD "c:\updat\temp"

Без ключа /E пустые папки копироваться не будут.



Не, косяк. Так вообще файлы не копируются...
Аватара пользователя
cher

Re: CMD/BAT - копирование определенных папок без "мусора"

Сообщение cher »

недопустимый параметр "c:\updat\*" и с кавычками и без
Аватара пользователя
xGETSx

Re: CMD/BAT - копирование определенных папок без "мусора"

Сообщение xGETSx »

Цитата:



Robocopy can not exclude files matching a wildcard including a directory e.g. /XF pictures\*.jpg generates an error.



Вот в чем проблема.





Код:

Код: Выделить всё

robocopy "c:\updat" "f:\3" /S /E /XD "c:\updat\temp"
del /Q "f:\3\*"
Аватара пользователя
cher

Re: CMD/BAT - копирование определенных папок без "мусора"

Сообщение cher »

Слушай... сработало.


Цитата xGETSx:



del /Q "f:\3\*"
CMD/BAT - копирование определенных папок без "мусора"




удаление файлов вне каталогов?

а повторно с копированием с уже имеющими папками и файлами?... насколько понимаю robocopy фиолетово-тупо заменит и все?

p.s-dirs получается не нужен?
Аватара пользователя
xGETSx

Re: CMD/BAT - копирование определенных папок без "мусора"

Сообщение xGETSx »

Код:

Код: Выделить всё

ATTRIB +I "c:\updat\*"
robocopy "c:\updat" "f:\3" /S /E /XD "c:\updat\temp" /XA:NET
ATTRIB -I "c:\updat\*"

И если файлов уж очень много - можно поизгаляться. Но это при условии что других файлов с атрибутом I нет, иначе они тоже не скопируются. Можно найти такой атрибут, которого на этих файлах быть не может и использовать.




Цитата cher:



удаление файлов вне каталогов?
CMD/BAT - копирование определенных папок без "мусора"




Удаление файлов только внутри корневой папки(в нашем случае f:\3)




Цитата cher:



dirs получается не нужен?
CMD/BAT - копирование определенных папок без "мусора"




dirs - обозначение просто. В ключ /XD можно впихнуть несколько папок



Код:

Код: Выделить всё

robocopy "c:\updat" "f:\3" /S /E /XD "c:\updat\temp" "c:\updat\1" "c:\updat\2" "c:\updat\3"
Ответить

Вернуться в «Скриптовые языки администрирования Windows»