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

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

Ответить
Настройки темы
CMD/BAT - [решено] Подгрузка содержимого файла в переменную с последующим ее поиском в другом файле

Новый участник


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

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


Изменения
Автор: slfly
Дата: 14-02-2012
Есть текстовый файл numbers.txt с числами вида:
Код: Выделить весь код
45345345
34534634
54687656
49679679
и т.д.
Задача: С помощью батника подгружать каждое из чисел в файле numbers.txt в переменную, затем осуществлять поиск этой переменной в файле pasports.txt и в случае, если значение там будет найдено, выводить его в файл results.txt
Представляю, что это будет выглядеть как-то так:
Код: Выделить весь код
@echo off
for /f %%a in (numbers.txt) do (
set line=%%a
find /I "%line%" pasports.txt
if errorlevel 1 goto :EOF 
if errorlevel 0 echo %line% >> results.txt
)
Все файлы находятся, естественно, в текущей директории.
Проблема: не могу добится работоспособности. Значение в переменную line записывается, но вот в команде find эта переменная уже не раскрывается - происходит поиск пустого параметра, в итоге батник заканчивается после прогона первого же значения.

Отправлено: 12:35, 14-02-2012

 

Новый участник


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

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


Вообщем-то сам проблему и решил
Код: Выделить весь код
for /f %%a in (numbers.txt) do call :log %%a

:log
set line=%1
find /I "%line%" pasports.txt
if errorlevel 1 goto :EOF 
if errorlevel 0 echo %line% >> results.txt
Судя по всему в do дополнительное условие ставить не стоило.

Отправлено: 13:50, 14-02-2012 | #2



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

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


Ветеран


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

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


Цитата slfly:
Судя по всему в do дополнительное условие ставить не стоило. »
slfly, Вам поможет отложенное раскрытие переменных:
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

for /f %%a in (numbers.txt) do (
	set line=%%a
	find /i "!line!" pasports.txt
	
	if errorlevel 1 goto :EOF 
	if errorlevel 0 echo !line! >> results.txt
)

endlocal
exit /b 0
Это если не трогать логику, а касаться некорректной работы с раскрытием переменных %…% внутри операторных скобок:
Цитата slfly:
Значение в переменную line записывается, но вот в команде find эта переменная уже не раскрывается - происходит поиск пустого параметра, в итоге батник заканчивается после прогона первого же значения. »

Отправлено: 16:53, 14-02-2012 | #3



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] в файле найти дату, скопировать символы, дописать перед символами в другом файле sucher Скриптовые языки администрирования Windows 7 10-03-2016 17:42
CMD/BAT - [решено] Чтение содержимого текстового файла в переменную kosmopes Скриптовые языки администрирования Windows 2 11-03-2011 12:58
CMD/BAT - [решено] Поиск и изменение содержимого в INI файле avb_trader Скриптовые языки администрирования Windows 6 11-10-2010 08:20
MSFT SQL Server - ошибка типа данных (tinyint и text) при записи содержимого поля в переменную Vi-P Программирование и базы данных 14 11-12-2008 01:14
подгрузка части кода на html-страницу из отдельного файла shmond Вебмастеру 3 04-04-2007 16:43




 
Переход