如何使用批处理文件将文本添加到多个文本文件的开头?

时间:2015-03-28 01:35:45

标签: windows batch-file

您好我想在Windows中的多个.txt文件的开头添加文本。

例如,我想将我的名字添加到文件夹中所有.txt文件的开头。我试过了:

for %%a in (*.txt) do type myname >> %%a  

(其中myname是包含我姓名的文件)

但是这会将行添加到文件的末尾,这不是我想要的。

是否有类似的方法将文本添加到所有.txt文件的开头?

编辑:

在尝试了一些事情之后我想出了这个:

@echo off
    for %%a in (*.txt) do (
    copy /b myname + %%a %%a.txt
    move "%%a.txt" "%%a"
)

这样可以正常工作,并将文件myname中包含的文本放在文件夹中每个.txt的顶部。

1 个答案:

答案 0 :(得分:2)

这将满足您的要求。基本上它是在我的名字顶部创建一个新文件,然后将原始文件附加到它。然后删除原始文件并将新文件重命名为原始名称。没理由你不能通过替换我的echo语句来“输入”任何文件。

@echo off
for /r %%a in (*.txt) do (
echo ---- %%a before ----
type "%%a"
echo --------------------

echo 'bert' > "%%a.tmp"
type "%%a" >> "%%a.tmp"
del "%%a"
move "%%a.tmp" "%%a"

echo ---- %%a affter ----
type "%%a"
echo --------------------
)

我得到的输出是:

C:\Users\Bert\Documents\test>addMyNameToTop.bat
---- C:\Users\Bert\Documents\test\test.txt before ----
testing 1-2-3
--------------------
        1 file(s) moved.
---- C:\Users\Bert\Documents\test\test.txt affter ----
'bert'
testing 1-2-3
--------------------

C:\Users\Bert\Documents\test>