И так, у нас есть некоторый текстовый файл-список (list.txt) вот такого формата:
Цитата:
"имя файла 1.log"
"имя файла 2.log"
....
"имя файла n-1.log"
"имя файла n.log"
* первая и последняя строка файла пустая
** знак ковычек (") - это непосредственно символ в файле, т.е. при обработке его нужно убрать, т.е. взять значение блаблабла из строки "блаблабла"
Этот файл любезно создан командой forfiles которая пометила файлы, старше 3х дней.
в кажом из этих файлов имя файла n.log есть строка, которую нужно выдернуть в переменную.
Алгоритм должен быть такой:
со второй и до предпоследней строки list.txt
1) брать строку из list.txt в переменную FL
2) исключить знаки " из FL (1 и последний символ)
3) из файла с именем из FL взять 2ю строку
запутался я что-то с синтаксисом cmd, задача простая на pascal легко программку написать, но не хочется прибегать к нему, а синтаксис cmd для меня дикий... пока что...
всем заранее спасибо за помощь!
CMD/BAT - работа с 2 текстовыми файлами, именами файлов и всё в цикле
-
Iska
Re: CMD/BAT - работа с 2 текстовыми файлами, именами файлов и всё в цикле
Например, так:
Код:
Код:
Код: Выделить всё
@echo off
setlocal enableextensions enabledelayedexpansion
for /f "delims==" %%i in (list.txt) do (
call :GetSecondLine "%%~i"
echo %%~i: [!SecondLine!]
)
endlocal
exit /b 0
:GetSecondLine
setlocal enableextensions enabledelayedexpansion
set sOutName=%~0
if exist "%~1" (
for /f "usebackq skip=1 delims==" %%j in ("%~1") do (
if not defined sResult set sResult=%%j
)
)
endlocal & set %sOutName:~4%=%sResult%
exit /b-
Тишина
Re: CMD/BAT - работа с 2 текстовыми файлами, именами файлов и всё в цикле
вопрос: цикл работает перебором по переменной i от 1 до "n" или там просто построчно считывается файл list.txt до тех пор пока не кончатся строки?
забыл учесть, что записи в этом файле имя файла n.log подразумевают, что n - это дата(дд,мм,гг) и время(чч,мм,сс,мс)
забыл учесть, что записи в этом файле имя файла n.log подразумевают, что n - это дата(дд,мм,гг) и время(чч,мм,сс,мс)
-
Iska
Re: CMD/BAT - работа с 2 текстовыми файлами, именами файлов и всё в цикле
«for /f» разбирает файл построчно, пропуская пустые строки.
Цитата Тишина:
забыл учесть, что записи в этом файле имя файла n.log подразумевают, что n - это дата(дд,мм,гг) и время(чч,мм,сс,мс)
Это как-то влияет на результат приведённого пакетного файла, Вы проверяли?
Цитата Тишина:
забыл учесть, что записи в этом файле имя файла n.log подразумевают, что n - это дата(дд,мм,гг) и время(чч,мм,сс,мс)
CMD/BAT - работа с 2 текстовыми файлами, именами файлов и всё в цикле
Это как-то влияет на результат приведённого пакетного файла, Вы проверяли?
-
Тишина
Re: CMD/BAT - работа с 2 текстовыми файлами, именами файлов и всё в цикле
В понедельник проверю. По идее не должно влиять!