0
我需要使用BATCH文件從文件中提取信息。我在Windows中安裝了AWK(GNUWIN32)。Windows批處理文件 - 多個條件和行
文本文件包含 -
# FOR Example Purposes *** #
# Dated on Jan 29, 2014
TEST_tag=branch_release_v_2.0.82.91_YOU_Branch
NONE_tag=branch_release_v_12.0.82.1_ONE_Branch
DOIT_tag=branch_release_v_1.0.9_EXA_Branch
現在,我需要從該文件下面的輸出(刪除註釋和字符串操作) -
TEST/branch_release_v_2.0.82.91_YOU_Branch
NONE/branch_release_v_12.0.82.1_ONE_Branch
DOIT/branch_release_v_1.0.9_EXA_Branch
,我會更喜歡它是否可以使用變量來實現而不是用「/」替換「_tag =」,所以我可以使用其他格式的邏輯。
在這裏,我試圖做的。
FOR /F "tokens=*" %%A IN ('awk "!/^($|#)/" test.txt') DO (
ECHO %%A | awk -F_ "{print $1}" > one.tmp
SET /P ONE=<one.tmp
ECHO %%A | awk -F= "{print $2}" > two.tmp
SET /P TWO=<two.tmp
ECHO %ONE%/%TWO%
)
它不工作,並打印相同的結果(最後一行只印3次)
DOIT/branch_release_v_1.0.9_EXA_Branch
DOIT/branch_release_v_1.0.9_EXA_Branch
DOIT/branch_release_v_1.0.9_EXA_Branch
解決方案(感謝脫線)---
FOR /F "tokens=*" %%A IN ('awk "!/^($|#)/" test.txt') DO (
setlocal enabledelayedexpansion
ECHO %%A | awk -F_ "{print $1}" > one.tmp
SET /P ONE=<one.tmp
ECHO %%A | awk -F= "{print $2}" > two.tmp
SET /P TWO=<two.tmp
ECHO !ONE!/!TWO!
)
謝謝再次。