Показать полную графическую версию : Копирование файлов содержащих в имени -210-
jestergrid
11-12-2013, 13:39
Здравствуйте
помогите написать батник который будет копировать файлы расширения *.mp3 и содержащие в имени -210- в другой каталог с сохранением структуры папок
На форму наткнулся на подобную задачу, но приложенный бат файл не решает полностью проблему
set DIR=D:\common
set TXT=D:\210.txt
set DST=D:\210
pushd "%DIR%" && ( for /f "delims=" %%a in (
'dir/s/b/a-d *.mp3^|findstr/g:"%TXT%"') do copy/-y "%%a" "%DST%"
)
заранее спасибо всем
навскидку так пойдет?
cd /d d:\common
for /f "delims=*" %%i in ('dir /b /a-d /s *.mp3') do (attrib -a "%%i" & echo %%i |find "-210-" && attrib +a "%%i")
xcopy /e /a /i *.mp3 d:\210
jestergrid
12-12-2013, 07:05
Опиум, все работает, можно еще узнать , если вдруг понадобиться искать по нескольким значениям , например -210- или -211- как это правильно реализовать?
для 211 можно написать дополнительную инструкцию for
Проще использовать «findstr.exe /c:"-210-" /c:"-211-"» вместо «find.exe».
jestergrid
13-12-2013, 05:50
Проще использовать «findstr.exe /c:"-210-" /c:"-211-"» вместо «find.exe». »Можно по подробней, изучал основы программирования, но с батниками не работал, как правильно использовать findstr?
Буду признателен за подробные комментарии =)
Заменить «find "-210-"» на «findstr.exe /c:"-210-" /c:"-211-"».
jestergrid
13-12-2013, 13:18
set DIR=D:\NEW_FTP\Dialog\common
set TXT=D:\NEW_FTP\Dialog\txt.txt
set DST=D:\NEW_FTP\Dialog\admin\
pushd "%DIR%" && ( for /f "delims=" %%a in (
'dir/s/b/a-d *.mp3^|findstr/g:"%TXT%"') do xcopy /s /e /y "%%a" "%DST%"
)
сделал таким образом, выбирает нужные файлы, но не копирует структуру папок
jestergrid, аллё, ты сделал чтото своё.
Не вижу в твоем примере моего решения, где xcopy запускается отдельно, а не в теле цикла.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.