2017-02-20 1 views
0

중첩 된 for 루프를 사용하여 배치 파일을 쓰려고합니다. 목적은 빈 토큰을 가질 수 있고 토큰 중 하나 인 전자 메일 주소를 추출 할 수있는 행을 읽는 것입니다. 파일에서 예를 들어 데이터가 나는Windows 배치 중첩 옵션이 예기치 않은 오류입니다

|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 

첫 번째 루프는 잘 실행하지만 두번째 루프 오류 아웃

enter image description here

+2

첫 번째 루프를 닫지 않았습니다. –

+0

이 유틸리티가 도움이됩니다. http://www.dostips.com/forum/viewtopic.php?f=3&t=5702 – Squashman

답변

1
말을 작성한 코드를 읽으려고하고있다

오류 메시지가 오타 "delim ="에 관한 것 같아요. 동료가 지적한대로 "delims ="이어야합니다. 구분 기호 '|' 탈출하지 않고 작동합니다. 그래도 응답 주셔서 감사합니다.

관련 문제