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

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

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
)
Другие вопросы по тегам