2014-07-14 50 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