Как сделать из exe в txt

Добавил пользователь Владимир З.
Обновлено: 03.10.2024

Я пишу командный файл script с использованием командной строки Windows и хочу изменить каждое вхождение какого-либо текста в файл (например, "FOO" ) другим (например, "BAR" ). Каков самый простой способ сделать это? Любые встроенные функции?

ОТВЕТЫ

Ответ 1

Многие ответы здесь помогли мне указать верное направление, однако ни один из них не подошел для меня, поэтому я публикую свое решение.

У меня Windows 7, которая поставляется со встроенным PowerShell. Вот скрипт, который я использовал для поиска/замены всех экземпляров текста в файле:

Чтобы объяснить это:

  • powershell запускает powershell.exe, входящий в состав Windows 7
  • -Command ". " - аргумент командной строки для powershell.exe, содержащий команду для запуска
  • (gc myFile.txt) читает содержимое myFile.txt ( gc - сокращение от команды Get-Content )
  • -replace 'foo', 'bar' просто запускает команду замены, чтобы заменить foo на bar
  • | Out-File myFile.txt | Out-File myFile.txt вывод в файл myFile.txt
  • -encoding ASCII позволяет транскрибировать выходной файл в Unicode, как отмечают комментарии

Powershell.exe уже должен быть частью вашего оператора PATH, но если нет, вы можете добавить его. Его расположение на моей машине: C:\WINDOWS\system32\WindowsPowerShell\v1.0

Ответ 2

Ответ 3

Просто используется FART ( " F ind A nd R eplace T ext" утилита командной строки):
отличное небольшое бесплатное ПО для замены текста в большом наборе файлов.

проведет предварительный просмотр замещений, чтобы сделать рекурсивно в файлах этого дистрибутива Perl.

Только проблема: значок веб-сайта FART не совсем со вкусом, утончен или элегантен;)

Обновление 2017 (7 лет спустя) jagb указывает в комментариях к статье 2011 года " FARTing the Easy Way - найти и заменить текст" из Mikail Tunç

Ответ 4

Заменить - заменить подстроку с помощью замены строки Описание: Чтобы заменить подстроку другой строкой, используйте функцию подстановки строк. Показанный здесь пример заменяет все вхождения "тех" орфографических ошибок с "the" в строковой переменной str.

Ответ 5

Создать файл replace.vbs:

Чтобы использовать этот измененный script (который хорошо вызывает replace.vbs), просто введите в командной строке команду, похожую на это:

cscript replace.vbs "C:\Scripts\Text.txt" "Jim " "James "

Ответ 6

Он использует комбинацию FOR , FIND и CALL SET .

Линии, содержащие символы среди "&<>]|^ , могут обрабатываться некорректно.

Ответ 7

Примечание. Обязательно просмотрите обновление в конце этого ответа для ссылки на главный JREPL.BAT, который заменяет REPL.BAT
JREPL.BAT 7.0 и выше поддерживает Unicode (UTF-16LE) через опцию /UTF , а также любой другой набор символов, включая UTF-8, через ADO .

Я написал небольшую гибридную JScript/пакетную утилиту REPL.BAT, которая очень удобна для изменения файлов ASCII (или расширенных ASCII) через командную строку или командный файл. Чистый собственный скрипт не требует установки любого стороннего исполняемого файла, и он работает с любой современной версией Windows с XP. Это также очень быстро, особенно по сравнению с чистыми пакетными решениями.

REPL.BAT просто читает stdin, выполняет поиск и замену регулярного выражения JScript и записывает результат в stdout.

Вот тривиальный пример того, как заменить foo на bar в test.txt, если REPL.BAT находится в вашей текущей папке или, еще лучше, где-то внутри вашего PATH:

Возможности регулярного выражения JScript делают его очень мощным, особенно способность заменяющего текста ссылаться на захваченные подстроки из текста поиска.

Я включил ряд опций в утилиту, которые делают ее достаточно мощной. Например, объединение опций M и X позволяет изменять бинарные файлы! Параметр M Multi-line позволяет выполнять поиск по нескольким строкам. Параметр X eXtended substitution pattern предоставляет escape-последовательности, которые позволяют включить любое двоичное значение в заменяющий текст.

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

Вот сценарий REPL.BAT. Полная документация встроена в скрипт.

ВАЖНОЕ ОБНОВЛЕНИЕ

Я прекратил разработку REPL.BAT и заменил его на JREPL.BAT. Эта новая утилита имеет все те же функциональные возможности REPL.BAT и многое другое:

  • Поддержка Unicode UTF-16LE через собственные возможности Unicode CSCRIPT и любой другой набор символов (включая UTF-8) через ADO.
  • Прочтите прямо из /write непосредственно в файл: нет необходимости в каналах, перенаправлении или переместить команду.
  • Включить предоставленный пользователем JScript
  • Функция перевода похожа на unix tr, только она также поддерживает поиск в регулярном выражении и замену JScript
  • Отменить несогласованный текст
  • Строки вывода префикса с номером строки
  • и более.

Как всегда, полная документация встроена в скрипт.

Теперь исходное тривиальное решение еще проще:

Ответ 8

Используйте утилиту fnr . Он получил некоторые преимущества перед fart :

  • Регулярные выражения
  • Дополнительный графический интерфейс. Имеет кнопку "Создать командную строку" для создания текста командной строки для помещения в командный файл.
  • Многострочные шаблоны: GUI позволяет вам легко работать с многострочными шаблонами. В FART вы должны вручную избегать разрывов строк.
  • Позволяет выбрать кодировку текстового файла. Также есть опция автоматического определения.

Пример использования: fnr --cl --dir " " --fileMask "hibernate.*" --useRegEx --find "find_str_expression" --replace "replace_string"

Ответ 9

Я не думаю, что есть способ сделать это с помощью любых встроенных команд. Я предлагаю вам скачать что-то вроде Gnuwin32 или UnxUtils и используйте команду sed (или загрузите только sed ):

Ответ 10

Я знаю, что опаздываю на вечеринку.

и они оба работают изначально без каких-либо дополнительных инструментов или утилит.

Ответ 11

Когда вы работаете с Git в Windows, просто запустите git-bash и используйте sed . Или, используя Windows 10, запустите "Bash в Ubuntu в Windows" (из подсистемы Linux) и используйте sed .

Редактор потока, но может редактировать файлы напрямую, используя следующую команду:

  • -i используется для редактирования на месте с именем файла.
  • -e указывает команду для запуска.
    • s используется для замены найденного выражения "foo" на "bar", а g используется для замены найденных совпадений.

    Если вы хотите заменить строку в файлах с версией только в репозитории Git, вы можете использовать:

    git ls-files | xargs sed -i -e 's/foo/bar/g'

    который творит чудеса.

    Ответ 12

    Я использовал perl, и это работает чудесно.

    .orig - это расширение, которое оно добавит к исходному файлу

    Для нескольких файлов, соответствующих *.html

    Ответ 13

    или если вы хотите сохранить вывод снова в файл.

    Преимущество этого в том, что вы можете транслировать вывод из любой программы. Посмотрите также на использование регулярных выражений. Не удалось решить, как сделать его в BAT файл для более легкого использования, хотя. (

    Ответ 14

    1) С опцией e? , которая будет оценивать специальные последовательности символов, такие как \n\r и последовательности Unicode. В этом случае будут заменены кавычки "Foo" и "Bar" :

    2) Прямая замена, где Foo и Bar не указаны.

    Ответ 15

    Здесь решение, которое я нашел, работало на Win XP. В моем запущенном пакетном файле я включил следующее:

    Файл replace.bat выглядит следующим образом. Я не нашел способ включить эту функцию в один и тот же командный файл, потому что переменная %%a всегда, кажется, дает последнее значение в цикле for.

    Ответ 16

    Взгляните на Есть ли какая-либо утилита sed для cmd.exe, которая запрашивала эквивалент sed под Windows, также должна применяться к этому вопросу. Краткое содержание:

    • Это можно сделать в пакетном файле, но это не очень.
    • Множество доступных сторонних исполняемых файлов, которые сделают это для вас, если у вас есть роскошь установки или просто копирования через exe
    • Может быть сделано с VBScript или аналогичным, если вам нужно что-то, что можно запустить в окне Windows без изменений и т.д.

    Ответ 17

    Может быть, немного поздно, но я часто ищу похожие вещи, так как я не хочу испытывать боль при получении одобренного программного обеспечения.

    Однако вы обычно используете оператор FOR в разных формах. Кто-то создал полезный командный файл, который выполняет поиск и замену. Посмотрите здесь. Важно понимать ограничения предоставленного пакетного файла. По этой причине я не копирую исходный код в этом ответе.

    Ответ 18

    Два пакетных файла, которые предоставляют функции search and replace , были написаны членами Qaru dbenham и aacini с использованием native built-in jscript Windows native built-in jscript .

    Они оба robust и very swift with large files по сравнению с обычными пакетными сценариями, а также simpler в использовании для базовой замены текста. Они оба имеют соответствие шаблону Windows regular expression .

    Этот sed-like вспомогательный пакетный файл называется repl.bat (от dbenham).

    Пример использования литерала L :

    Этот grep-like вспомогательный командный файл называется findrepl.bat (от aacini).

    Пример с активными регулярными выражениями:

    Обе они становятся мощными общесистемными утилитами, when placed in a folder that is on the path , или могут использоваться в той же папке с командным файлом, или из командной строки cmd.

    Оба имеют переключатели без case-insensitive и многие другие функции.

    Ответ 19

    Команда командной оболочки работает как шарм

    Ответ 20

    Просто столкнулся с аналогичной проблемой - "Искать и заменять текст в файлах", но, за исключением того, что для обоих имен файлов и поиска /repalce мне нужно использовать регулярное выражение. Поскольку я не знаком с Powershell и хочу сохранить мои поиски для последующего использования, мне нужно что-то более "удобное для пользователя" (желательно, если у него есть GUI).

    Итак, в то время как Googling:) я нашел отличный инструмент - FAR (Найти и заменить) (а не FART).

    Эта небольшая программа имеет приятный графический интерфейс и поддерживает регулярное выражение для поиска в именах файлов и внутри файлов. Только disadventage заключается в том, что если вы хотите сохранить свои настройки, вы должны запустить программу в качестве администратора (по крайней мере, на Win7).

    Ответ 21

    Это одно дело, что пакетный скриптинг просто не работает.

    Связанный с script morechilli будет работать для некоторых файлов, но, к сожалению, он захлестнет те, которые содержат такие символы, как трубы и амперсанды.

    Ответ 22

    Для простой замены строк в файлах я использую с тех пор свободные Xchang32.exe из Коллекция Clay Utilities for Win32.

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

    И ничто другое не требуется для этого небольшого 32-битного консольного приложения, чем файл Xchang32.exe, извлеченный из ZIP файла, в любую директорию, такую ​​как каталог пакетного файла, вызывающий его для замены (s).

    Эта командная строка заменяет в файле MyBinaryFile.bin каждый байт значением 3 на два байта со значениями 2 и 5.

    Общей проблемой с использованием wmic является то, что выход является файлом Unicode, хотя все символы определенно находятся в диапазоне символов ASCII, т.е. имеют значение кодовой точки ниже десятичного числа 128.

    Этот небольшой пакетный код с использованием Xchang32 преобразует выходной файл wmic Unicode, содержащий только символы ASCII в текстовый файл ASCII.

    Но иногда вывод wmic перенаправляется непосредственно в текстовый файл ASCII, в результате чего CR CR LF (0D 0D 0A) в текстовом файле ASCII вместо 0D 0A (возврат каретки + строка-строка). Эти неправильные окончания строк также можно легко скорректировать с помощью Xchang32:

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

    Примечание: ^ и , имеют особое значение в синтаксисе Xchang32 и поэтому должны быть экранированы с помощью другого ^ или , , как это сделано в командной строке выше, или переключателя /s используется для простых строк. Это описано в файле ReadMe32.txt , а также в выводе справки при запуске Xchang32.exe /? в окне командной строки.

    Ответ 23

    @Rachel дал отличный ответ, но вот его вариант, чтобы прочитать содержимое переменной powershell $data . Затем вы можете легко манипулировать контентом несколько раз перед записью в выходной файл. Также посмотрите, как многострочные значения задаются в пакетных файлах .bat.

    Ответ 24

    Использовать powershell в .bat - для Windows 7 +

    кодировка utf8 является необязательной, подходит для веб-сайтов

    Ответ 25

    Я предпочитаю использовать sed из утилит GNU для Win32, необходимо отметить следующее

    • одинарная кавычка '' не будет работать в Windows, вместо этого используйте ""
    • sed -i не будет работать в Windows, для этого потребуется обмен файлами

    Таким образом, рабочий код sed для поиска и замены текста в файле в Windows, как показано ниже

    Ответ 26

    Загрузите Cygwin (бесплатно) и используйте unix-подобные команды в командной строке Windows.

    Ваш лучший выбор: sed

    Ответ 27

    Инструмент, который заменяет строки в файлах, находится в VBScript (требуется Windows Script Host [WSH] для запуска в старых версиях Windows)

    Фильтр, вероятно, не работает с Unicode, если вы не перекомпилируете последний Delphi (или с FreePascal/Lazarus)

    Ответ 28

    Я столкнулся с этой проблемой несколько раз при кодировании в Visual С++. Если у вас есть это, вы можете использовать Visual Studio Find and Replace Utility. Он позволяет вам выбрать папку и заменить содержимое любого файла в этой папке любым другим желаемым текстом.

    В Visual Studio: Изменить → Найти и заменить В открывшемся диалоговом окне выберите свою папку и заполните поля "Найти что" и "Заменить с". Надеюсь, это будет полезно.

    Вы можете перевести документы в формат txt с помощью бесплатного онлайн конвертера.

    Как сконвертировать в txt

    Загрузите файл

    Выберите файл, который вы хотите конвертировать с компьютера, Google Диска, Dropbox или перетащите его на страницу.

    Выберите txt или любой другой формат, в который вы хотите конвертировать файл (более 200 поддерживаемых форматов)

    Скачайте ваш txt файл

    Бесплатное онлайн преобразование txt

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

    Мы удаляем загруженные файлы txt мгновенно и преобразованные файлы через 24 часа. Все файлы передаются с использованием продвинутого шифрования SSL.

    Вам не нужно устанавливать какое-либо программное обеспечение. Все преобразования txt происходят в облаке, и не используют какие-либо ресурсы вашего компьютера.

    Raw text file

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

    Необработанные текстовые файлы не сильно отформатированы, и это означает, что они соответствуют принятым форматам системным терминалом и базовым текстовым редактором. Эти файлы принимаются и используются повсеместно, так как они могут быть прочитаны любой текстовой программой. Это происходит потому, что он использует стандартную форму кодирования, которая позволяет легко использовать файлы для разных языковых пользователей. Специальные текстовые файлы ASCII могут использоваться вместо друг друга и могут быть прочитаны с помощью Unix, Mac и Windows. UTF-8 отличается от ASCII, и это объясняется различиями в знаках порядка байтов и него по-прежнему остается самый большой набор символов.

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

    Хотя на практике этот подход может показаться более простым, особенно если у вас нет опыта работы с CLI, у него есть свои недостатки. В отличие от способа CLI, который обеспечивает быстрый и эффективный способ создания файлов на вашем компьютере, подход GUI включает в себя несколько шагов, что делает его трудоемким и неэффективным.

    Итак, вот руководство, которое проведет вас по различным методам, которые вы можете использовать для создания файла в Windows (будь то Windows 11, Windows 10, Windows 8 или Windows 7) с помощью командной строки.

    Как создать файл в Windows с помощью командной строки

    Командная строка или CMD — это мощная утилита Windows, которая позволяет с легкостью выполнять различные системные операции на вашем компьютере. Он предустановлен в системе и позволяет запускать команды для множества действий, от управления файлами до запуска пакетных файлов для автоматизации задач.

    Создание файлов является одной из таких задач, которую вы можете выполнить быстрее и эффективнее с помощью командной строки CMD, чем с помощью проводника. Но прежде чем мы перейдем к делу и продемонстрируем, как создать файл в командной строке, вы должны знать, как перемещаться по структуре каталогов Windows на нем, чтобы вы могли создавать файлы в нужной папке.

    Навигация по файловой системе Windows с помощью командной строки

    Затем введите команду dir, чтобы вывести список всех файлов и каталогов (или папок) внутри папки. После того, как вы определили папку, которую хотите открыть, введите следующую команду и нажмите Enter:

    Например:
    cd Documents

    Чтобы вернуться в родительский каталог, выполните:
    cd ..

    Для доступа к корневому каталогу:
    cd \

    Пока мы на этом, вы также должны знать, что вы можете создавать каталоги (или папки) с помощью командной строки. Для этого используйте команду cd , чтобы перейти к папке, в которой вы хотите создать новую папку, и используйте следующий синтаксис:

    Например, чтобы создать каталог с именем MyDocs , запустите:
    mkdir MyDocs

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

    Для создания файла с помощью команды echo откройте командную строку и введите команду, используя следующий синтаксис:
    echo your_text_here > filename.extension

    Например, если вы хотите создать текстовый файл с именем MyFile с текстом This is sample text и расширением .txt, вы должны запустить:
    echo This is sample text > MyFile.txt

    После создания файла убедитесь, что он был успешно создан, выполнив:

    Например:
    type MyFile.txt

    Создание файла с помощью команды copy con

    В отличие от команды echo , которая с самого начала принимает от вас содержимое файла, который вы создаете, команда copy con использует несколько иной подход.

    С ним вам нужно только изначально дать имя вашему файлу. Затем он открывает новый файл в текстовом редакторе, где вы можете заполнить его текстом.

    Чтобы создать файл с помощью copy con , используйте следующий синтаксис:
    copy con filename_with_extension

    Например:
    copy con MyFile.txt

    Теперь вы попадете в файл в самом окне командной строки, где вы можете добавить к нему желаемый текст. Сделав это, нажмите Ctrl + Z , чтобы сохранить файл, и Ctrl + C , чтобы выйти из редактирования.

    Создание файла в блокноте с помощью командной строки

    Для этого введите команду в окне CMD, используя следующий синтаксис, и нажмите Enter :
    notepad filename.extension

    Например, если вы хотите создать файл с именем SampleDoc , вы должны запустить:
    notepad SampleDoc.txt

    После этого CMD откроет файл в Блокноте. Вам будет предложено создать новый файл, поскольку введенный вами файл не существует. Нажмите Да , чтобы принять и создать файл.

    Теперь, точно так же, как вы используете Блокнот, введите текст в файл и нажмите Ctrl + S , чтобы сохранить, и Ctrl + W , чтобы закрыть файл.

    Создание нескольких файлов с помощью командной строки

    В случаях, когда вы хотите создать несколько файлов внутри папки одновременно и заполнить их позже, вы можете использовать цикл for , как показано в следующем синтаксисе:

    for /l %a in (1 1 10) do type nul > "%a.txt"
    …где (1 1 10) указывает CMD выполнять задачу в последовательности от 1, с шагом от 1 до 10. Чтобы создать 20 файлов, замените 10 на 20 в вашей команде.

    Если вы хотите добавить общее имя в начало каждого файла, а затем номер, вам нужно использовать следующий синтаксис:
    for /l %a in (1 1 10) do type nul > "filename %a.txt"

    … где вам нужно заменить имя файла на имя, которое вы хотите дать своим файлам.

    Например, выполнение приведенной ниже команды создаст 10 пустых файлов со следующим синтаксисом имени: MyDoc-1 .
    for /l %a in (1 1 10) do type nul > "MyDoc-%a.txt"

    Кроме того, если вы хотите создать несколько файлов с одним и тем же текстом, вы можете настроить команду так, чтобы она включала одно и то же действие. Для этого вместо включения do type nul вам нужно использовать do echo your_desired_text .

    Например, если вы хотите создать 10 файлов с именами MyDoc-1.txt , MyDoc-2.txt ,… и т. д. с помощью This is sample text as text , вы должны запустить:
    for /l %a in (1 1 10) do echo This is sample text> "MyDoc-%a.txt"
    …и они будут созданы в вашем текущем каталоге . .

    Эффективное создание файлов в Windows с помощью командной строки

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

    Таким образом, в зависимости от требований вы можете выбрать соответствующий метод и быстро и эффективно создавать файлы в Windows.

    Не хочу вам показаться не адекватным, мне предложили работу и у них таковы требования:
    "Знания в Python и умение объединять exe с txt и другими расширениями".
    И я вот думаю, может быть .txt в .dat перевести и уже затем шаманить? Если возможно, подскажите, куда копать?

    А теперь представьте себе, что люди, которые подобным безграмотным образом формулируют требования, будут вами руководить. Вы будете тут постоянно спрашивать, что же они имели в виду? Или решите уволиться через неделю?
    По сути формулировки, им, вероятно, нужно делать исполняемые файлы, которые написаны на Python, и в которые (в виде ресурсов, например) внедрены текстовые данные. Это возможно, но зачем это писать в вакансии?

    gcs_dk

    Zoominger

    Повангую: очевидно, имеется в виду скрипт на Пистоне, который что-то подтягивает из текстовых файлов, эдакие плагины для бедных.
    Но я могу ошибаться.

    gcs_dk

    NeiroNx

    gcs_dk

    delvin-fil

    Сразу уточню, что возможно я не до конца понимаю о чём речь и не понимаю вообще что такое ".dat" и зачем он в данном случае нужен. Но, суть вашего вопроса напомнила мне мои потуги ~15-летней давности написать собственный архиватор, который мог бы создавать само-распаковывающиеся архивы. В те времена, я достаточно дотошно изучал структуру .EXE-файлов. и в какой-то момент обнаружил, что Вы можете дописывать в конец практически любого (исключения в основном составляют программы проверяющие собственную целостность при запуске) .EXE-файла любые другие данные. Более того, все само-распаковывающиеся архивы работают именно по такому же принципу - в конец .EXE-файла - просто дописывается архив, после чего, при запуске, файл (SFX-архив) читает сам себя, смещая указатель на длину (размер) исходного .EXE-файла (за которым соотв. идёт уже архив).

    Иными словами, Вы можете дописывать что угодно в конец EXE-файла не нарушая его работоспособность, хоть TXT-файлы, хоть картинки, хоть BluRay фильм туда добавьте. Делается это максимально просто на любом (ну или почти любом) языке, просто открываете .EXE-файл, в бинарном режиме, на запись, открываете другой файл (текстовый или любой другой), так же в бинарном режиме, смещаете указатель в первом файле в самый конец, пишите данные из 2-го файла. Собственно. и всё. Причём тут конкретно Python - я понятия не имею.

    Читайте также: