不曉得大約這樣的內容該如何編寫..
請求教導,先謝謝幫忙
內容大致如下
@echo on
for /f %%a in (1.txt) do (
find /i "ID :" %%a.log> 2.txt
for /F "skip=4 TOKENS=2 delims=:" %%i IN (2.txt) DO (SET ID=%%i
echo %%a %%i>>3.txt)
)
以上的收錄結果應該是:%%a AAEEBB XXXXX
因為使用 delims=: 取代了原本的空格分割符號,以這個需求來說應該不要用 delims=:,此例不需要 : 號來進行分割,空格分割剛好符合需要的輸出樣式。
findstr 較find好使些,可以保證格式相同才收錄,使用find /i "ID :"可能遇到
ID : ADSFDSAFSDFSADFSDF ASFDFDFASD
XXXXID : AAEEBBXXXXX
因為只要有ID :就會收錄
以下是我的方法請參考:
@Echo Off
for /f "tokens=1,4" %%i in ('findstr /R /C:"\<ID : ......\>" *.log') do echo %%~ni %%j>>Result.log
這個好處是保證格式為 ID : 後接6個任意字元的才會被收錄
find 與 findtr 一樣可一次尋找多個檔案,可以用 *.log 使步驟少一些,個人偏好findstr多一些。
那個 Set ID 是不是有特殊用途?
一、用 for dir 將 每個 log 檔名抓出起
EX: 111.log
二、用 for find 將 111.log 的 ID:xxxxxx 抓出來
三、將 檔名和 xxxxxx 輸出 到 test.txt
不會用 for 指令? 請google batch for