type
有一个意外的习惯:它将文件名写入STDERR,但是将文件内容写入STDOUT。如果要将两者都重定向到文件,则需要将STDOUT(>
)和STDERR(2>&1
=“与STDOUT相同的目的地”)都重定向:
type *.txt >newfile.tmp 2>&1
move /y newfile.tmp newfile.txt
命名目标文件.txt
也会导致键入(结果文件将包含您的某些文件的两个副本)。因此,我重定向到.tmp
文件,并在以后重命名。
,
我相信您想要这样的东西:
for %_ in (
"C:\Folder\*.txt"
) do (
ECHO=
ECHO==============================================
ECHO== Begin File: %~nx_
ECHO==============================================
ECHO=/---------------------------------------------\
type "%~f_"
ECHO=\---------------------------------------------/
ECHO=
) >> "C:\SomeFolder\output.txt"
,
我找不到想要的结果。相反,我采用了另一种方法,即在每个文本文件的第一个谎言中添加文件名,然后
type *.txt > output.txt
下面是我用来在每个文本文件的第一行中添加文件名的命令
for %%I in (*.txt) do (echo %%~nI>"%TEMP%\FileName.tmp"
echo/>>"%TEMP%\FileName.tmp"
copy /B "%TEMP%\FileName.tmp" + "%%~I" "%%~I.tmp">nul
del "%%~I" ren "%%~I.tmp" "%%~nxI")
del "%TEMP%\FileName.tmp" 2>nul
本文链接:https://www.f2er.com/3141566.html