首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >BAT文件来读取文件夹中的许多.txt文件,并将它们合并到.csv文件中,并将文件名的一部分添加到每一行的前面。

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

Stack Overflow用户
提问于 2022-04-19 08:07:21
回答 1查看 32关注 0票数 0

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

代码语言:javascript
复制
@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!
  )
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-19 12:09:47

把一段代码附加到另一段代码对你没有任何帮助。您需要在第一个循环中插入第二个片段:

代码语言:javascript
复制
@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循环忽略了空行和以;开头的行。如果这是个问题的话,适应是必要的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71921588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档