如何在多個檔案中查詢想要的資料?
現使用 for 命令與 findstr 命令結合的方式,以達到我們的目的。
演示步驟:
1. 在 d:/temp 目錄下有一堆文字檔案,stru001.xml,stru002.xml,stru003.xml,……,stru200.xml。
2. 在 d:/temp 目錄下建立一檔案列表檔案 filelist.txt,它將包含前面的檔名,格式如下:
stru001.xml
stru002.xml
stru003.xml ……
stru200.xml
3. 我們要將查詢出的結果分別匯出到名稱不相同的檔案中去,
for/f "tokens=1*" %iin(filelist.txt)dofindstr/r /i "name=*" %i >> d:/temp/result_%i.txt
需要說明一下,for 會每次從 filelist.txt 中取出乙個檔名稱並儲存在 %i 變數內,然後將 %i 作為傳入變數給 findstr 命令使用。這裡涉及到的命令引數詳細內容可參考windows的聯機幫助。
這一招在實際應用中挺管用,雖然ultraedit文字編輯方面做得很不錯了,但面對這樣的問題,還是用指令碼解決來的快啊。
下面是結合db2 sql指令碼執行的例子,
for /f "tokens=1*" %i in (d:/temp/txcode.txt) do db2 select f_id, f_name from t_codes where f_catid = 'tx' and f_id = '%i' >> d:/temp/desc.dic
挖掘 FOR 的潛力(2)
上一節講了利用for迴圈功能幫助我們輸出重複量較大的資料或是重複執行相同的命令。這一節還是繼續挖掘for的迴圈能力,但這裡的迴圈將和前面不同,它能幫助我們處理工作當中常遇到的資料格式化問題,也可以說是對資料的抽取 轉換和載入,用一句術語來形容,那就是etl extract tranform load...
挖掘FOR的潛力 4
前面三篇for文章對有關技巧做了些簡述,現在我將對for語句的靈活運用寫個詳細例子。情景介紹 我們要將某日誌檔案中特定內容的行資料搜尋出來,並再過濾出其中一部分我們所需要的資訊.比如,有乙個日誌檔案內容是這樣的 2007 05 01 00 00 00 statement1 2007 05 01 02...
挖掘FOR的潛力 4
前面三篇for文章對有關技巧做了些簡述,現在我將對for語句的靈活運用寫個詳細例子。情景介紹 我們要將某日誌檔案中特定內容的行資料搜尋出來,並再過濾出其中一部分我們所需要的資訊.比如,有乙個日誌檔案內容是這樣的 2007 05 01 00 00 00 statement1 2007 05 01 02...