Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Копирование файлов содержащих в имени -210- (http://forum.oszone.net/showthread.php?t=273792)

jestergrid 11-12-2013 13:39 2270598

Копирование файлов содержащих в имени -210-
 
Здравствуйте
помогите написать батник который будет копировать файлы расширения *.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%"
)

заранее спасибо всем

Опиум 11-12-2013 15:04 2270651

навскидку так пойдет?

Код:

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 2271133

Опиум, все работает, можно еще узнать , если вдруг понадобиться искать по нескольким значениям , например -210- или -211- как это правильно реализовать?

Опиум 12-12-2013 14:46 2271303

для 211 можно написать дополнительную инструкцию for

Iska 12-12-2013 15:12 2271321

Проще использовать «findstr.exe /c:"-210-" /c:"-211-"» вместо «find.exe».

jestergrid 13-12-2013 05:50 2271642

Цитата:

Цитата Iska
Проще использовать «findstr.exe /c:"-210-" /c:"-211-"» вместо «find.exe». »

Можно по подробней, изучал основы программирования, но с батниками не работал, как правильно использовать findstr?
Буду признателен за подробные комментарии =)

Iska 13-12-2013 06:43 2271654

Заменить «find "-210-"» на «findstr.exe /c:"-210-" /c:"-211-"».

jestergrid 13-12-2013 13:18 2271776

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%"
)

сделал таким образом, выбирает нужные файлы, но не копирует структуру папок

Опиум 18-12-2013 17:27 2274469

jestergrid, аллё, ты сделал чтото своё.
Не вижу в твоем примере моего решения, где xcopy запускается отдельно, а не в теле цикла.


Время: 11:30.

Время: 11:30.
© OSzone.net 2001-