此代码效果很好,但我需要将文件名添加到它所写的每一行的前面。
如何做到这一点?
来自线程: batch to copy FIRST line of multiple text files
这使用了来自 - https://www.dropbox.com/s/rfdldmcb6vwi9xc/findrepl.bat
的名为findrepl.bat的帮助程序批处理文件将findrepl.bat放在与批处理文件相同的文件夹中或路径上。
@echo off
set linenum=1
for %%a in (*.txt) do (
type "%%a"|findrepl /o:%linenum%:%linenum% >>tmp.tmp
)
move /y tmp.tmp "Result.txt"
答案 0 :(得分:1)
@echo off
(
for %%a in (*.txt) do (
set "first="
for /f "usebackq delims=" %%b in ("%%a") do if not defined first (
echo(%%a %%b
set first=Y
)
)
)>"Result.txt"
应该适合你。
进入一个名为" Result.txt"的新文件
- 对于每个文件(名称为%%a
)
- 清除旗帜
- 逐行读取文件到%%b
;如果标志清除echo
文件名
和行读取并设置标志,以便不再生成其他行
usebackq
,因为引用了%%a
。如果%%a
包含分隔符,则引用{{1}}。