Batch file 根据文件名连接文件

Batch file 根据文件名连接文件,batch-file,concatenation,Batch File,Concatenation,是否有方法根据文件名使用type命令连接多个log.txt文件 例如,如果文件以System.[Timestamp].*开头,则我希望将所有以System开头的文件中的内容合并到一个主文件中,如果文件以其他内容开头,则应将内容附加到另一个主日志文件中。这可以通过命令行或批处理文件实现吗 我想到了一些东西,但我不知道如何处理这个问题并检查文件名: for %x in (*.txt) do ( //loop through whole directory //here i think th

是否有方法根据文件名使用
type
命令连接多个log.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
  )
谢谢您抽出时间。

@ECHO OFF
SETLOCAL
对于(*.txt)中的%%a,请执行以下操作(
ECHO%%~na | FINDSTR/b/i/L/c:“系统。”>NUL
如果错误级别为1(键入“%%a”>>OtherLog.log)或其他(键入“%%a”>>SystemMasterLog.log)
)
后藤:EOF

这会解决你的问题。请注意,输出文件具有扩展名
.log
,以确保它们与正在处理的
.txt
文件分开。此外,与模式
system.*.txt
匹配的任何文件都假定指向SystemMasterLog.log。

当您提到文件名开头和文件开头时,您的问题可以通过两种方式解决

这将为您提供名称以
System

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

我稍微修改了它,以包含所有以
system
开头的
.txt
文件,并重命名了临时文件。