2017-02-20 13 views
0

入れ子になったforループを持つバッチファイルを作成しようとしています。目的は、空のトークンを持つことができる行を読み込んで、トークンの1つである電子メールアドレスを抽出することです。私は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 

に私は最初のループが

enter image description here

+2

最初のforループを終了していません –

+0

このユーティリティも同様に役立ちます。 http://www.dostips.com/forum/viewtopic.php?f=3&t=5702 – Squashman

答えて

1
を言って細かい動作しますが、第二のループエラー

@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 

を書かれているコードを読み取るようにしようとしていたファイルから サンプルデータ

私は、エラーメッセージはtypo "delim ="に関するものだと思います。同僚が指摘したように、 "delims ="でなければなりません。区切り記号 '|'エスケープせずに動作します。しかし、応答をありがとう。

関連する問題