Войти

Показать полную графическую версию : [решено] Поиск фалов по содержимому и копирование найденных файлов в папку


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


@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
Дле теста были созданы на диске d:\ два файла новый1.txt и новый2.txt,

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

Randow
05-05-2015, 21:11
все отработало как надо, код батника рабочий. »

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

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

Randow
05-05-2015, 21:46
124937

124938

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

Вот...

Georgio
05-05-2015, 22:13
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
Спасибо, друзья!
Спасибо, register01, за то, что отозвались, спасибо, за помощь с кодом, почему я до этого не додумалась? xD




© OSzone.net 2001-2012