.bat файл для циклического просмотра папки и добавления текстовых файлов

Я хотел бы настроить простой пакетный файл, который будет перебирать все файлы .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

Дополнительные примечания:
 – Нет необходимости перебирать вложенные папки.


person Karl    schedule 13.04.2012    source источник


Ответы (1)


Пакет Windows не имеет собственной команды для редактирования файла на месте (кроме добавления к нему данных). Поэтому для каждого файла вам нужно создать временный файл с желаемым содержимым, а затем удалить оригинал и переименовать временный файл в оригинал. Удаление и переименование можно выполнить с помощью одной команды 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
)
person dbenham    schedule 13.04.2012