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
文件,并重命名了临时文件。