Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - работа с 2 текстовыми файлами, именами файлов и всё в цикле

Ответить
Настройки темы
CMD/BAT - работа с 2 текстовыми файлами, именами файлов и всё в цикле

Аватара для Тишина

Пользователь


Сообщения: 127
Благодарности: 8

Профиль | Отправить PM | Цитировать


И так, у нас есть некоторый текстовый файл-список (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 взять строку

запутался я что-то с синтаксисом cmd, задача простая на pascal легко программку написать, но не хочется прибегать к нему, а синтаксис cmd для меня дикий... пока что...

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

Отправлено: 13:41, 11-07-2012

 

Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Например, так:
Код: Выделить весь код
@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
Это сообщение посчитали полезным следующие участники:

Отправлено: 00:21, 12-07-2012 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Аватара для Тишина

Пользователь


Сообщения: 127
Благодарности: 8

Профиль | Отправить PM | Цитировать


вопрос: цикл работает перебором по переменной i от 1 до "n" или там просто построчно считывается файл list.txt до тех пор пока не кончатся строки?
забыл учесть, что записи в этом файле имя файла n.log подразумевают, что n - это дата(дд,мм,гг) и время(чч,мм,сс,мс)

Отправлено: 15:35, 13-07-2012 | #3


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


«for /f» разбирает файл построчно, пропуская пустые строки.

Цитата Тишина:
забыл учесть, что записи в этом файле имя файла n.log подразумевают, что n - это дата(дд,мм,гг) и время(чч,мм,сс,мс) »
Это как-то влияет на результат приведённого пакетного файла, Вы проверяли?

Отправлено: 15:56, 13-07-2012 | #4


Аватара для Тишина

Пользователь


Сообщения: 127
Благодарности: 8

Профиль | Отправить PM | Цитировать


В понедельник проверю. По идее не должно влиять!

Отправлено: 20:26, 15-07-2012 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - работа с 2 текстовыми файлами, именами файлов и всё в цикле

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Инфо - Работа с INF-файлами -devICE- Наборы обновлений для Windows XP/2003/Windows 7 6 17-10-2022 01:11
текстовый файл с именами всех файлов в папке socap AutoIt 19 19-02-2012 16:42
Интерфейс - Синхронизация файлов с одинаковыми именами но разного размера. Houre Microsoft Windows 2000/XP 5 20-09-2011 12:32
Проблема с русскими именами файлов iml Общий по Linux 7 25-09-2006 12:40
[RedHat 9] Mounting FAT32 с русскими именами файлов! Kentavriusis Общий по Linux 10 21-04-2003 22:16




 
Переход