簡體   English   中英

如何使用Windows批處理腳本搜索字符串並從文本文件中提取另一個字符串模式

[英]How to search a string and extract another string pattern from a text file using windows batch script

考慮out.txt文件具有以下格式:

Display Variable;

    ID    NAME       value
===*==========*================
201  Variavle     07Dec2014

Display Variable12;

ID    NAME          value
===*==========*================
201  Variavle12     08Dec2014

Display Variable123;

ID    NAME       value
===*==========*================
201  Variavle123     09Dec2014    

在批處理文件中,我們需要搜索VariableVariable12Variable123,然后將列值中的每個字符串返回到批處理文件中,並將其返回給環境變量,其名稱來自NAME列,例如

SET Variavle=09Dec2014
SET Variavle12=08Dec2014
SET Variavle123=09Dec2014

請幫助我完成它。

@echo off

for /f "tokens=2,3 delims= " %%A in ('FINDSTR /i /r  /c:"Variavle.* " out.txt') do (
    set "%%A=%%B"
)

set Variavle

以下代碼幫助我找到了答案

SET Variavle=09Dec2014

SET Variavle12 = 08Dec2014 SET Variavle123 = 09Dec2014

@echo off   
for /f "tokens=* " %%A in ('FINDSTR /i /r  /c:"Variable     " D:\test.txt') do (    
SET _test=%%A
SET Variable=%_test:~20,5%
ECHO %Variable%
)    

……

讓我知道是否有任何變化!

感謝您的幫助。

@npocmaka

"dev.bat"

@回聲關閉
為/ f“ tokens = *” %% A in('FINDSTR / i / r / c:“ nBegin_fcst_dt” D:\\ test.txt')做(
SET _test =變量20142 SET nBegin_fcst_dt =%_ test:〜13,5%ECHO:%nBegin_fcst_dt%)“ D:\\ test.txt” ID名稱值=== =============== ============ 201 Variavle 20142

我只運行了上面的腳本,例如“ test.bat”

我得到了一些奇怪的輸出。

預期產量20142

當我運行腳本時,我在第三時間獲得了實際輸出

First time: Nothing

第二次:〜13,5第三次:20142

d:> dev.bat

D:> dev.bat〜13.5 D:> dev.bat 20142

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM