2017-02-20 15 views
0

Я пытаюсь написать командный файл с вложенными циклами. Цель состоит в том, чтобы читать строки, которые могут иметь пустые токены и извлекать адреса электронной почты, которые являются одним из токенов. пример данные из файла Я пытаюсь читатьWindows Batch Nested Для параметров была неожиданная ошибка

|4|HistoryDates|History Dates Check|Check history data store tables for valid dss_start and dss_end_date combinations|DataStore|History|01 Source System||||||dss_eff_start_date > dss_eff_end_date or (dss_current_ind = 'Y' and dss_eff_end_date <> to_date('2999-12-31','yyyy-mm-dd'))||N||||Y|Email|lijo.samuel 

Кода я написал

@echo off 
setlocal enabledelayedexpansion 
setlocal enableextensions 
for /F "usebackq skip=1 tokens=*" %%G in (%LOAD_FILE%) do (
SET LINE="%%G" 
SET "LINE="!LINE:^|="|"!"" 
REM echo !LINE! 
for /F "usebackq delim=| tokens=2,5" %%H in ("!LINE!") do echo email %%~H 

Первый цикл работает нормально, но 2-й ошибка цикла, говоря

enter image description here

+2

Вы не закрыли первый цикл для цикла –

+0

Эта утилита также поможет в этом. http://www.dostips.com/forum/viewtopic.php?f=3&t=5702 – Squashman

ответ

1

Я думаю, что сообщение об ошибке относится к опечатке «delim =». Должен быть «delims =», как отметил коллега. Разделитель '|' работает без побега. Спасибо за ответы, хотя.

 Смежные вопросы

  • Нет связанных вопросов^_^