Пакет Windows - объединить несколько текстовых файлов в один

Мне нужно создать script, который объединяет несколько текстовых файлов в один. Я знаю его простой в использовании

type *.txt > merged.txt

Но требование - "объединить файлы с того же дня в файл day_YYYY-DD-MM.txt". Я - пользователь linux и пакет для Windows - это ад для меня.

EDIT: его Windows XP

Ответ 1

В самом основном, конкатенирование файлов из пакетного файла выполняется с помощью 'copy'.

copy file1.txt + file2.txt + file3.txt concattedfile.txt

Ответ 2

Команда type Windows работает аналогично UNIX cat.

Пример 1: объединение с именами файлов (это объединит file1.csv & file2.csv для создания concat.csv)

type file1.csv file2.csv > concat.csv

Пример 2: объединить файлы с шаблоном (это объединит все файлы с расширением csv и создаст concat.csv)

type  *.csv > concat.csv

Ответ 3

Поместите все файлы, которые нужно скопировать в отдельной папке, для удобства размещения их на диске c.

Откройте командную строку - windows > введите cmd > выберите командную строку.

Вы можете увидеть каталог по умолчанию - Ex: C: [Folder_Name] > . Измените каталог, чтобы указать папку, в которую были скопированы файлы, с помощью команды "cd [Folder_Name]".

После указания на каталог - введите 'dir', который отобразит все файлы, присутствующие в папке, чтобы убедиться, что все на месте.

Теперь введите: 'copy *.txt [newfile_name].txt' и нажмите enter.

Готово!

Весь текст в отдельных файлах будет скопирован в [newfile_name].txt

Ответ 4

Я повторяю некоторые другие уже высказанные замечания, но включаю третий пример, который помогает, когда у вас есть файлы в папках, которые вы хотите объединить.

Пример 1 (файлы в одной папке):

copy file1.txt+file2.txt+file3.txt file123.txt

Пример 2 (файлы в одной папке):

type *.txt > combined.txt

Пример 3 (файлы существуют в нескольких папках, предполагается, что newfileoutput.txt не существует):

for /D %f in (folderName) DO type %f/filename.txt >> .\newfileoutput.txt

Ответ 5

Попробуйте следующее:

@echo off
set yyyy=%date:~6,4%
set mm=%date:~3,2%
set dd=%date:~0,2%

set /p temp= "Enter the name of text file: "
FOR /F "tokens=* delims=" %%x in (texto1.txt, texto2.txt, texto3.txt) DO echo %%x >> day_%temp%.txt

Этот код попросит вас установить имя файла после "day_", где вы можете ввести дату. Если вы хотите назвать свой файл, как фактическую дату, вы можете сделать это:

FOR /F "tokens=* delims=" %%x in (texto1.txt, texto2.txt, texto3.txt) DO echo %%x >> day_%yyyy%-%mm%-%dd%.txt

Ответ 6

Вы можете сделать это, используя тип:

type"C:\<Directory containing files>\*.txt"> merged.txt

все файлы в каталоге будут добавлены в файл merged.txt.

Ответ 7

Мы можем использовать обычную команду CAT для объединения файлов.

D: > cat *.csv > outputs.csv

Ответ 8

cat "входные файлы"> "выходные файлы"

Это работает в PowerShell, которая является предпочтительной оболочкой Windows в текущих версиях Windows, поэтому она работает. Это также единственная версия приведенных выше ответов для работы с большими файлами, где "type" или "copy" завершаются неудачно.