BAT文件读取文件夹中的许多.txt文件,并将它们合并为.csv文件,并将部分文件名添加到每行的前面



我希望我的代码读取每个。txt文件,并将文件名的前6个数字添加到该行的前面…我已经设置了代码的第一部分,我知道第二部分需要看起来如何,我只是不知道如何合并它们…

@echooff
del Build_count.csv
for /f %%a in ('dir /b *.txt') do for /f "tokens=*" %%b in (%%a) do echo %%a,%%b >> Build_count.csv
@echo off
setlocal enabledelayedexpansion
if exist List.cvs del List.cvs
for %%a in (*.txt) do (
set fn=%%~na
set fn=!fn:~0,6!
)

只是将一个代码附加到另一个代码上并没有帮助。您需要将第二个代码片段插入到第一个循环中:

@echo off
setlocal enabledelayedexpansion
(for /f %%a in ('dir /b *.txt') do (
set "fn=%%~na"
for /f "tokens=*" %%b in (%%a) do (
echo !fn:~0,6!,%%b 
)
))>Build_count.csv

对于每个匹配的文件提取所需的字符串,然后在另一个循环中读取每一行,并写入字符串加上行。将整个文件一次重定向到目标文件(这比打开文件,找到结尾,添加一行并为每一行再次关闭文件要快得多)。没有必要事先删除它,因为代码无论如何都会覆盖文件。

注意:for /f循环现在忽略空行和以;开头的行。如果这是一个问题,就必须进行调整。

相关内容

  • 没有找到相关文章

最新更新