Показать полную графическую версию : Копирование файлов по маске расширения
Валерий_Назаров@vk
19-06-2013, 10:10
Проблема:
нежен батник типа xcopy *.jpg E:\
но в этой же папке существуют файлы типа *.jpg_omt
xcopy copy копирует и *.jpg и *.jpg_omt.
т.е. если до трёх знаков или после трёх знаков маска работает правильно, то именно три знака не имеют ограничения по количеству знаков после точки в маске.
сторонние программы не катят.
Валерий_Назаров@vk, маска работает правильно в любом случае. Дело в том, что Ваши файлы «*.jpg_omt» имеют короткие имена в виде «xxxx~N.jpg» (dir /x). Потому они и попадают под маску и копируются.
Возможный обходной путь:
for %%i in ("*.jpg") do if /i "%%~xi" equ ".jpg" copy "%%~fi" "e:\"
Валерий_Назаров@vk
19-06-2013, 12:42
спасибо, работает.
Валерий_Назаров@vk
19-06-2013, 13:43
в продолжении темы:
for /R %%i in ("*.jpg") do if /i "%%~xi" equ ".jpg" xcopy "%%~fi" D:\F
как прописать, что бы копировал с сохранением структуры подкаталогов?
как прописать, что бы копировал с сохранением структуры подкаталогов? »
Прочитать справку к «xcopy.exe»:
xcopy.exe /?
?
Валерий_Назаров@vk
19-06-2013, 14:01
прочитал.
xcopy /E "%%~fi" D:\F
надо писать xcopy /E но команда for /R не передаёт названия каталогов и всё валится в корневик.
Используйте robocopy:
robocopy.exe "." "d:\F" "*.jpg" /e /xf "*.jpg_omt"
Валерий_Назаров@vk
19-06-2013, 14:51
всё работает и стало как-то изящней.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.