Как удалить все разрывы строк из текстового файла с помощью Batch

Вопрос или проблема

Я хочу удалить все разрывы строк из текстового файла
Пример:

FILE1 +
FILE2 +
FILE3 +

Выход должен быть

FILE1 + FILE2 + FILE3 +

Я не могу найти ответы в поисковой системе, которые могут решить мою проблему.

Есть ли способ автоматически удалить разрыв строки, используя/из команды
@echo %SomeStringHere%>>file.txt, потому что это причина моей проблемы. Он автоматически вставляет разрыв строки перед строкой для вставки. Или есть команда, которая может обновить текстовый файл без нового разрыва строки?

Я бы предложил установить awk. Чтобы сделать это на OSX

brew install awk

После установки вы можете добавить следующую строку в ваш bash-скрипт:

awk '{printf "%s+",$0} END {print ""}'

Примечание: Если вы используете Windows, я предлагаю GAWK (http://gnuwin32.sourceforge.net/packages/gawk.htm)

test.txt

FILE1 +
FILE2 +
FILE3 +

join.bat

@echo off
setlocal enabledelayedexpansion
set outstring=
for /f "delims=" %%A in (test.txt) do set outstring=!outstring!%%A
echo outstring=%outstring%

выход

c:\Batch>join.bat
outstring=FILE1 + FILE2 + FILE3 +

Ответ или решение

Чтобы удалить все переносы строк из текстового файла с использованием Batch, вам нужно собрать строки файла в одну строку, сохраняя нужные разделители. Ниже приведена инструкция по достижению этой цели.

Шаги для удаления переносов строк из текстового файла с помощью Batch:

  1. Создайте текстовый файл (например, test.txt), содержащий ваши данные:

    FILE1 +
    FILE2 +
    FILE3 +
  2. Создайте Batch файл (например, join.bat) с соответствующими командами. Этот файл будет объединять строки в исходном текстовом файле в одну строку.

  3. Код для Batch файла:

    @echo off
    setlocal enabledelayedexpansion
    set outstring=
    for /f "delims=" %%A in (test.txt) do set outstring=!outstring!%%A
    echo !outstring! > result.txt
  4. Объяснение кода:

    • @echo off: отключает вывод команд в консоль для повышения читаемости.
    • setlocal enabledelayedexpansion: позволяет использовать отложенное расширение переменных, что необходимо для динамической сборки строк.
    • set outstring=: инициализирует переменную outstring, которая будет содержать результирующую строку.
    • for /f "delims=" %%A in (test.txt) do set outstring=!outstring!%%A: проходит по каждой строке исходного файла, добавляя её к outstring.
    • echo !outstring! > result.txt: выводит результирующую строку в новый файл result.txt.
  5. Запустите join.bat:
    С помощью командной строки или двойным щелчком по файлу запустите join.bat. В результате будет создан файл result.txt, содержащий строку:

    FILE1 + FILE2 + FILE3 +

Заключение

Этот метод позволяет вам удалить все переносы строк, эффективно объединяя содержимое файла в одну строку с помощью Batch. Если вы ищете инструмент для постоянной автоматизации подобных задач, возможно, стоит рассмотреть альтернативные скриптовые языки, такие как Python или PowerShell, обеспечивающие более широкие возможности.

Таким образом, использование Batch для подобных задач требует лишь базовых знаний и может быть применено в ситуациях, когда установка дополнительных инструментов ограничена.

Если вас интересуют более сложные сценарии работы с текстом или другие оптимизации, всегда полезно рассматривать различные скриптовые и программные средства.

Оцените материал
Добавить комментарий

Капча загружается...