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

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

Ответить
Настройки темы
CMD/BAT - [решено] параметры цикла for для построчного анализа текстового файла?!

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


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

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


Добрый день!
Есть необходимость построчно проанализировать содержимое текстового файла. Никак не могу определиться с синтаксисом.
@for /f "tokens=*" %%A in (c:\text.txt) do @echo %%A – не работает

Отправлено: 15:52, 04-02-2008

 

Ветеран


Contributor


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

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


Burning Hell,
Вот мой вариант AND для произвольного числа искомых слов в файле
Код: Выделить весь код
@Echo Off
cls

Set /A Iter=0

:Begin
If %Errorlevel%==2 GoTo :Eof

Set /A Iter+=1
Echo +++ Begin %Iter% Iteration

Call :StrDate "DateTime"
Set "LogFile=D:\logs\check_va_lasr_status_%DateTime%.log" 

Call "D:\SAS\sas.exe" -sysin "D:\codes\check_va_lasr\check_va_lasr_status.sas" -log "%LogFile%"

Call :get_params_from_main_config "D:\codes\common\init_environment.sas" ""lasr_port" "lasr_host""

Call :IfAND "%LogFile%" "error" "connection" "lasr" "%lasr_port%" "%lasr_host%" && (
	Call "D:\SAS\sas.exe" -sysin "D:\codes\check_va_lasr\check_lasr_log_and_run.sas" -nolog
	CHOICE /C YN /T 15 /D N /M "Iteration %Iter% finished with Errors. Y - Continue, N - Cancel."
	Echo:
	GoTo :Begin
) || (
	Echo +++ Iteration %Iter% finished successfully
	GoTo :Eof
)

GoTo :Eof

:get_params_from_main_config
	Set "Key=let"
	FOR /F "usebackq tokens=1,2,3 delims==; " %%i IN (`more %1 2^>nul`) DO (
		For %%a In (%~2) Do Call :Ident %%a "%%i" "%%j" "%%k"
	)
GoTo :Eof

:Ident
	If /I %2=="%Key%" If /I %1==%3 Set "%~1=%~4"
GoTo :Eof

:IfAND
	>nul 2>&1 findstr.exe /i /l /C:%2 %1 || Exit /B 1
	Shift /2
	If Not "%2"=="" GoTo :IfAND
Exit /B 0

:StrDate
	FOR /F "tokens=2 delims==." %%d in ('WMIC OS GET LOCALDATETIME /VALUE') DO SET @Tdate=%%d
	Set "@Ttime=1%@Tdate:~8,6%"
	Set "@Tdate=%@Tdate:~0,4%-%@Tdate:~4,2%-%@Tdate:~6,2%"
	If %@Ttime% LSS 1120000 (Set "%~1=%@Tdate%__%@Ttime:~1,2%.%@Ttime:~3,2%.%@Ttime:~1,2% AM" &GoTo :Eof)
	Set /A @Ttime=%@Ttime%-120000
	Set "%~1=%@Tdate%__%@Ttime:~1,2%.%@Ttime:~3,2%.%@Ttime:~1,2% PM"
GoTo :Eof
где ввызове подпрограммы
Код: Выделить весь код
Call :IfAND "%LogFile%" "error" "connection" "lasr" "%lasr_port%" "%lasr_host%"
- в первом аргументе - имя файла "%LogFile%",
- в остальных аргументах -искомые слова в кавычках. Здесь пять слов. Уберите лишние.
Процедура возвращает %ErrorLevel%==0 если все слова найдены, иначе %ErrorLevel%==1
Iska, А зачем при поиске нужен конвейер
Код: Выделить весь код
type "%full_log_path%" | >nul 2>&1 find.exe
type "%full_log_path%" | >nul 2>&1 findstr.exe
Когда можно напрямую сослаться на файл "%full_log_path%" в find.exe и findstr.exe ?

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Отправлено: 21:06, 07-08-2017 | #51



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

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


Ветеран


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

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


Цитата megaloman:
Iska, А зачем при поиске нужен конвейер »
Сила привычки. В данном случае несущественно, но вообще find.exe в этом случае «гадит» в stdout именем файла, предварённым символами «-».

Отправлено: 21:22, 07-08-2017 | #52



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Создание текстового файла при условии его отсутствия в папке spilberg Скриптовые языки администрирования Windows 1 12-07-2009 15:58
[решено] Чтение текстового файла с неизвестным именем ZeroCrash AutoIt 4 01-07-2009 19:03
[решено] Заполнение формы на сайте, но с данными из текстового файла ZeroCrash AutoIt 2 24-06-2009 11:04
CMD/BAT - [решено] Как скопировать имя файла из текстового файла в код батника и т.д. Nun-Nun Скриптовые языки администрирования Windows 6 13-05-2009 13:28
CMD/BAT - [решено] вывод текстового файла на экран cmd idsp Скриптовые языки администрирования Windows 6 06-04-2009 07:18




 
Переход