根据文件名连接文件

时间:2014-07-14 12:52:51

标签: batch-file concatenation

是否有办法根据文件名使用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
  )

感谢您的时间。

2 个答案:

答案 0 :(得分: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。

答案 1 :(得分:0)

当您提到文件名开头和文件开头时,您的问题可以采用几种方式。

这将为您提供名称以System

开头的所有文件的主日志
@echo off
for %%a in (system*.txt) do type "%%a" >>"file.tmp"
ren "file.tmp" SystemMasterLog.txt"