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
)