|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] параметры цикла for для построчного анализа текстового файла?! |
|
CMD/BAT - [решено] параметры цикла for для построчного анализа текстового файла?!
|
Пользователь Сообщения: 58 |
Профиль | Отправить PM | Цитировать Добрый день!
Есть необходимость построчно проанализировать содержимое текстового файла. Никак не могу определиться с синтаксисом. @for /f "tokens=*" %%A in (c:\text.txt) do @echo %%A – не работает |
|
Отправлено: 15:52, 04-02-2008 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
Отправлено: 15:49, 26-07-2017 | #21 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 79
|
Профиль | Отправить PM | Цитировать Цитата Iska:
%global vaRepLib vaRepLib lasr_port lasr_engine lasr_tag lasr_host lasr_signer lasr_options metaport metaprotocol metarepository lasr_sig_files_path; %let vaRepLib = lasrlib; %let lasr_port = 2289; %let lasr_engine = sasiola; %let lasr_tag = va_pub; %let lasr_host = sas-vaar.dev.rnw; %let lasr_signer = %str("http://sas-metadata.dev.rnw:85/SASLASRAuthorization"); %let lasr_options = %str(tag=&lasr_tag port=&lasr_port host="&lasr_host" signer=&lasr_signer); Цитата Iska:
lasr_host. |
||
Отправлено: 15:56, 26-07-2017 | #22 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Burning Hell:
Цитата Burning Hell:
Скрытый текст
@echo off
setlocal enableextensions enabledelayedexpansion
set sSourceFile=C:\Мои проекты\0102\0001.txt
if exist "%sSourceFile%" (
for /f "usebackq tokens=2,3 delims==; " %%i in (
`type "%sSourceFile%" ^| findstr.exe /i /r /c:"%%let lasr_port = [0-9]*;"`
) do set s%%i=%%j
if defined slasr_port (
echo [!slasr_port!]
) else (
echo Not found [lasr_port]
)
for /f "usebackq tokens=2,3 delims==; " %%i in (
`type "%sSourceFile%" ^| findstr.exe /i /r /c:"%%let lasr_host = .*;"`
) do set s%%i=%%j
if defined slasr_host (
echo [!slasr_host!]
) else (
echo Not found [slasr_host]
)
) else (
echo Can't find source file [%sSourceFile%].
exit /b 1
)
endlocal
exit /b 0
|
||
Отправлено: 16:22, 26-07-2017 | #23 |
Пользователь Сообщения: 79
|
Профиль | Отправить PM | Цитировать Цитата Iska:
|
|
Отправлено: 16:28, 26-07-2017 | #24 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Burning Hell:
|
|
Отправлено: 16:41, 26-07-2017 | #25 |
Пользователь Сообщения: 79
|
Профиль | Отправить PM | Цитировать Iska, возникло несколько вопросов.
Что означает вот этот оператор Цитата Iska:
Для чего нужны квадратные скобки Цитата Iska:
Также я не очень понял, что делают вот эти два параметра после setlocal: Цитата Iska:
Цитата Iska:
|
||||
Последний раз редактировалось Burning Hell, 26-07-2017 в 17:06. Отправлено: 16:45, 26-07-2017 | #26 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Burning Hell:
Цитата Burning Hell:
Посредством цикла разбора for /f "usebackq tokens=2,3 delims==; " мы разбиваем её на составляющие: и выбираем второй и третий токены в %%i и %%j соответственно. Таким образом строка: выполняется как: s я просто добавляю как префикс для получаемой переменной окружения. Привычка. Цитата Burning Hell:
|
|||
Отправлено: 17:05, 26-07-2017 | #27 |
Пользователь Сообщения: 79
|
Профиль | Отправить PM | Цитировать Iska, правильно я понял, что
Цитата Iska:
|
|
Отправлено: 17:16, 26-07-2017 | #28 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Burning Hell, правильно. В том числе и пустая последовательность. К сожалению, реализация регулярок у findstr.exe весьма куцая.
|
Отправлено: 17:22, 26-07-2017 | #29 |
Ветеран Сообщения: 2727
|
Профиль | Отправить PM | Цитировать Как вариант (если после равно в строке всякие спкцсимволы - не годится)
@Echo Off cls Set "FileIn=Z:\Box_In\In File.txt" Set "Key=let" FOR /F "usebackq tokens=1,2,3 delims==; " %%i IN (`more "%FileIn%" 2^>nul`) DO ( Call :Ident "lasr_port" "%%i" "%%j" "%%k" Call :Ident "lasr_host" "%%i" "%%j" "%%k" rem Остальные три строки вставил как пример возможности Call :Ident "vaRepLib" "%%i" "%%j" "%%k" Call :Ident "lasr_engine" "%%i" "%%j" "%%k" Call :Ident "lasr_tag" "%%i" "%%j" "%%k" ) Echo %lasr_port% Echo %lasr_host% Echo %vaRepLib% Echo %lasr_engine% Echo %lasr_tag% pause GoTo :Eof :Ident If /I %2=="%Key%" If /I %1==%3 Set "%~1=%~4" GoTo :Eof |
------- Последний раз редактировалось megaloman, 27-07-2017 в 11:00. Отправлено: 17:22, 26-07-2017 | #30 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
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 |
|