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

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

Randow 05-05-2015 19:22 2504151

Поиск фалов по содержимому и копирование найденных файлов в папку
 
Вложений: 1
Привет, форумчане!
Очень нужна ваша помощь. Задача моя, в принципе, видна из темы - я веду поиск файлов в директории, не затрагивая внутренние папки, по содержимому, и найденные файлы должна скопировать в отдельную папку (в данном случае просто создаю папку с названием запрашиваемого текста). Вот, все получается кроме последнего шага - происходит кривое копирование, т.к. копируется только последний файл из тех, что были найдены.
Вот код:
Код:


@echo on
set /p mesto="vvedite put' k papke: "
set /P str=Vvedite stroku:
findstr /M /C:%str% %mesto%*.txt
set /p vopr="peremestit' naydenniye fayli v odnoimennuyu papku? (Y-da/N-net):"
if %vopr%==Y (
mkdir %mesto%%str%
for /f "Delims=" %%i in ('findstr /C:%str% %mesto%*.txt') do ( copy %mesto%"%%~ni.txt" "%mesto%%str%")
) else ( echo %str% )
pause

И, собственно, запуск:

Файл 124935


Заранее спасибо!

register01 05-05-2015 20:58 2504195

Вложений: 1
Дле теста были созданы на диске d:\ два файла новый1.txt и новый2.txt,

содержимое 1-го:
test
plural
--------------------
содержимое 2-го:
test
test vasya pupkin
plural
--------------------
все отработало как надо, код батника рабочий.

Randow 05-05-2015 21:11 2504203

Цитата:

Цитата register01
все отработало как надо, код батника рабочий. »

Спасибо... Но почему тогда у меня копируется только один файл?..

register01 05-05-2015 21:20 2504206

твои файлы txt прикрепи сюда, и батник именно тот, которым пользуешься когда не получается.

Randow 05-05-2015 21:46 2504220

Вложений: 3
Файл 124937

Файл 124938

Текст батника именно тот, что я кидала. Файл 124939

Вот...

Georgio 05-05-2015 22:13 2504228

Код:

if /i "%vopr%"=="Y" (
 mkdir "%mesto%%str%"
 for /f "delims=" %%i in ('findstr /m /c:"%str%" "%mesto%*.txt"') do (
  copy "%%i" "%mesto%%str%"
 )
) else (
 echo "%str%"
)


Randow 05-05-2015 22:31 2504233

Спасибо, друзья!
Спасибо, register01, за то, что отозвались, спасибо, за помощь с кодом, почему я до этого не додумалась? xD


Время: 05:04.

Время: 05:04.
© OSzone.net 2001-