我希望我的代码读取每个.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!
)发布于 2022-04-19 12:09:47
把一段代码附加到另一段代码对你没有任何帮助。您需要在第一个循环中插入第二个片段:
@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循环忽略了空行和以;开头的行。如果这是个问题的话,适应是必要的。
https://stackoverflow.com/questions/71921588
复制相似问题