2014-07-14 48 views
1

有沒有辦法使用type命令根據文件名來連接多個日誌.txt文件?連接文件根據文件名

例如,如果文件以System。[Timestamp]。*開頭,那麼我希望所有以System開頭的文件的內容合併到一個主文件中,並且如果文件以其他內容開始,那麼內容應該附加到另一個主日誌文件。這可能通過命令行或通過使用批處理文件?

我想到了什麼,但我不知道究竟如何處理這一點,並檢查文件名:

for %x in (*.txt) do (//loop through whole directory 
    //here i think there should be a check if a file starts System.* 
    //and if so then type fileName.txt > SystemMasterLog.txt 
) 

謝謝您的時間。

回答

0
@ECHO OFF 
SETLOCAL 

FOR %%a IN (*.txt) DO (
ECHO %%~na|FINDSTR /b /i /L /c:"System." >NUL 
IF ERRORLEVEL 1 (TYPE "%%a">>OtherLog.log) ELSE (TYPE "%%a">>SystemMasterLog.log) 
) 

GOTO :EOF 

這應該解決您的問題。請注意,輸出文件的擴展名爲.log,以確保它們與正在處理的.txt文件保持獨立。此外,任何匹配模式system.*.txt的文件都將被定向到SystemMasterLog.log。

0

您提到的問題可以採取幾種方法,如您提到文件名的開始和文件的開始。

這會給你的所有文件與名稱的主日誌開始System

@echo off 
for %%a in (system*.txt) do type "%%a" >>"file.tmp" 
ren "file.tmp" SystemMasterLog.txt" 
+0

謝謝! @foxidrive – AlexFaux

+0

我稍微修改它以包含以'system'開頭的所有'.txt'文件並重命名臨時文件。 – foxidrive