.bat文件循环文件夹并附加文本文件

时间:2012-04-13 08:14:56

标签: loops batch-file append command-prompt windows-xp-sp3

我想设置一个简单的批处理文件,它将遍历文件夹(放置批处理文件的文件夹)中的所有.txt文件,并为每个文件添加相同的标题行。标题行在单独的文本文件中定义。

例如,假设我有:

c:\SomeFolder\Headings.txt   
    --> I want to add this to the top of each of the text files in:

c:\SomeFolder\FolderWithTextFiles\
    --> ...by running the batch file:

c:\SomeFolder\FolderWithTextFiles\BatchFile.batch

额外说明:
- 无需遍历子文件夹

1 个答案:

答案 0 :(得分:2)

Windows批处理没有本机命令来编辑文件(除了向其附加数据)。因此,对于每个文件,您需要创建具有所需内容的临时文件,然后删除原始文件并将temp重命名为原始文件。可以使用单个MOVE命令完成删除和重命名。

@echo off
set "header=c:\SomeFolder\Headings.txt"
set "folder=c:\SomeFolder\FolderWithTextFiles"
set "tempFile=%folder%\temp.txt"
for %%F in ("%folder%\*.txt") do (
  type "%header%" >"%tempFile%"
  type "%%F" >>"%tempFile%"
  move /y "%tempFile%" "%%F" >nul
)