【发布时间】:2017-02-20 00:55:07
【问题描述】:
我正在尝试编写一个带有嵌套 for 循环的批处理文件。目的是读取可以具有空令牌的行并提取作为令牌之一的电子邮件地址。 我正在尝试读取的文件中的示例数据
|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
第一个循环运行良好,但第二个循环错误提示
【问题讨论】:
-
你没有关闭第一个 for 循环
-
此实用程序也将对此有所帮助。 dostips.com/forum/viewtopic.php?f=3&t=5702
标签: batch-file for-loop nested-loops