2017-02-20 40 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 =”。分隔符'|'没有逃脱的作品。谢谢你的回应。