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

<p>мне нужно создать сценарий, который объединяет несколько текстовых файлов в один . я знаю, его простой в использовании</p><pre><code>type *.txt > merged.txt </code></pre><p>но требование заключается в том, чтобы «объединить файлы одного дня в файл day\_yyyy-dd-mm.txt». я - пользователь linux, и пакет windows является для меня адом. </p><p>правка: его windows xp</p>

<p>в основном, объединение файлов из пакетного файла выполняется с помощью «copy».</p><pre><code>copy file1.txt + file2.txt + file3.txt concattedfile.txt </code></pre>

<p>поместите все файлы, которые необходимо скопировать, в отдельную папку, для удобства разместите их на диске c.</p><p>откройте командную строку - windows> введите cmd> выберите командную строку.</p><p>вы можете видеть указание каталога по умолчанию - пример: c: [имя\_папки]> . измените каталог, чтобы он указывал на папку, в которую вы поместили файлы для копирования, с помощью команды 'cd [folder\_name]'.</p><p>после указания на каталог - введите «dir», который показывает все файлы, присутствующие в папке, просто чтобы убедиться, что все на месте.</p><p>теперь введите: «copy * .txt [newfile\_name] .txt» и нажмите ввод.</p><p>готово!</p><p>весь текст в отдельных файлах будет скопирован в [newfile\_name] .txt</p>

<p>команда типа windows работает аналогично unix cat.</p><p><strong> пример 1: </strong>объединить с именами файлов (это объединит file1.csv & file2.csv для создания concat.csv)</p><pre><code>type file1.csv file2.csv > concat.csv </code></pre><p><strong> пример 2: </strong>объединить файлы с шаблоном (это объединит все файлы с расширением csv и создаст concat.csv)</p><pre><code>type *.csv > concat.csv </code></pre>

<p>попробуй это:</p><pre><code>@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 </code></pre><p>этот код просит вас задать имя файла после «day\_», где вы можете ввести дату . если вы хотите назвать свой файл как фактическую дату, вы можете сделать это:</p><pre><code>for /f "tokens=* delims=" %%x in (texto1.txt, texto2.txt, texto3.txt) do echo %%x >> day\_%yyyy%-%mm%-%dd%.txt </code></pre>

<p>мы можем использовать обычную команду cat для объединения файлов .. </p><p>d:><strong> cat * .csv> output.csv </strong></p>

<p>вы можете сделать это, используя тип: </p><pre><code>type"c:\<directory containing files>\*.txt"> merged.txt </code></pre><p>все файлы в каталоге будут добавлены в файл <code>merged.txt</code>.</p>

<p>я повторяю некоторые другие уже сделанные замечания, но в том числе третий пример, который помогает, когда у вас есть файлы в папках, которые вы хотите объединить.</p><p>пример 1 (файлы в одной папке):</p><pre><code>copy file1.txt+file2.txt+file3.txt file123.txt </code></pre><p>пример 2 (файлы в одной папке):</p><pre><code>type *.txt > combined.txt </code></pre><p>пример 3 (файлы существуют в нескольких папках, предполагается, что newfileoutput.txt не существует):</p><pre><code>for /d %f in (foldername) do type %f/filename.txt >> .\newfileoutput.txt </code></pre>

<p>cat "входные файлы"> "выходные файлы" </p><p>это работает в powershell, который является предпочтительной оболочкой windows в текущих версиях windows, поэтому он работает. это также единственная версия приведенных выше ответов для работы с большими файлами, где «type» или «copy» завершаются неудачно.</p>