Как можно найти и заменить текст в файле, используя командную строку Windows?

Категория: лайф хаки

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

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

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

powershell -Command "(gc myFile.txt) -replace 'foo', 'bar' | Out-File -encoding ASCII myFile.txt"

Разберем его:

  • 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 направляет вывод в файл myFile.txt.
  • -encoding ASCII предотвращает перевод файла вывода в Unicode, как указывают комментарии.

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

Обновление Очевидно, что в современных системах Windows есть встроенный PowerShell, который позволяет вам получить доступ к нему напрямую с помощью:

(Get-Content myFile.txt) -replace 'foo', 'bar' | Out-File -encoding ASCII myFile.txt




Если вам нужен по настоящему хороший и профессиональный веб хостинг или свой высокопроизводительный сервер, то смело переходите по ссылке и заказывайте!

 

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *



Карта сайта
Copyright © 2024