Войти

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


shark106
29-10-2013, 14:53
Здравствуйте.
Заранее приношу извинения - если похожая задача уже была. Параллельно веду поиск по форуму (тут быстрее указать могут ссылку)

ТО задачи.

Есть n-ое количество файлов формата *.snd в одной папке.
В каждом файле есть n-ое количество строк начинающихся символами $U (всегда одна строка есть и максимум не лимитирован) .
Все строки начинающиеся на $U не более 200 символов.


Результатом должен быть один файл (можно как пример rez.txt) в котором должны быть

Пример результата

имя файла , вся строка что начинается с $U

name1.snd $U,U=xxxx,R=yyyy,B=zzzz,N=nnnnnn,A=ss,S=w,L=ttttttttt,I=z

(если не одна строка тогда

name1.snd $U,U=xxxx,R=yyyy,B=zzzz,N=nnnnnn,A=ss,S=w,L=ttttttttt,I=z
name1.snd $U,U=xxxx,R=yyyy,B=zzzz,N=nnnnnn,A=ss,S=w,L=ttttttttt,I=z
name1.snd $U,U=xxxx,R=yyyy,B=zzzz,N=nnnnnn,A=ss,S=w,L=ttttttttt,I=z

Файл результата должен дописываться - изначально он отсутствует.

Пример -

name1.snd $U,U=xxxx,R=yyyy,B=zzzz,N=nnnnnn,A=ss,S=w,L=ttttttttt,I=z
...............
name2.snd $U,U=xxxx,R=yyyy,B=zzzz,N=nnnnnn,A=ss,S=w,L=ttttttttt,I=z
...............
nameN.snd $U,U=xxxx,R=yyyy,B=zzzz,N=nnnnnn,A=ss,S=w,L=ttttttttt,I=z


Названия файлов цифровые - но могут быть не по порядку. Количество файлов может быть от 10 и больше (граничное количество - размер винчестера)

Просьба помочь.

Elven
29-10-2013, 16:45
Если не критично чтобы имя файла и строка разделялись именно пробелом, то можно так.
findstr /B $U *.snd >> result.log
Если нужно именно через пробел - нужно в строке ковыряться, не люблю я это дело...

shark106
29-10-2013, 16:51
Если не критично чтобы имя файла и строка разделялись именно пробелом, то можно так. »


Это как раз то - что нужно ) Далее усложнять не надо - этот результат все равно в прогу передаеться и обрабатывается по по маске *.snd и меткам (U,R,B,N и т.д.)

Спасибо большое )

shark106
29-10-2013, 19:54
Я, конечно, извиняюсь. НО принесли небольшое изменение в ТО... Нужно еще после имени файла в итог получать дату создания файла...

Гуллипут
29-10-2013, 20:14
for %%f in (*.snd) do (
for /F "delims=" %%s in ('findstr /B $U %%f') do echo %%f %%~tf %%s >> result.log
)

Но тут к дате ещё бесплатно добавляется время создания.
Надо ли его убирать ?

shark106
29-10-2013, 20:31
Надо ли его убирать ? »

Время роли не играет.

этот результат все равно в прогу передаеться и обрабатывается по по маске *.snd и меткам (U,R,B,N и т.д.) »

Еще одну маску добавлю dd.mm.yyyy и все )))

Спасибо огромное - это то что доктор прописал )))




© OSzone.net 2001-2012