Подтвердить что ты не робот

Как заменить текст в текстовом файле с помощью bat файла script?

Итак, я хочу создать script, который принимает 3 аргумента: путь к файлу, точное слово для замены и с чем его заменить. Как создать такую ​​вещь?

Как правило, я хочу, чтобы у него был API:

script.bat "C:/myTextDoc.xml" "_WORD_TO_REPLACE_" "WordTo Use"
4b9b3361

Ответ 1

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

Найдите здесь http://findandreplace.codeplex.com/

Также он является одним exe без каких-либо зависимостей, поэтому его легко использовать.

Пример:

fnr --cl --dir "" --fileMask "hibernate.*" --useRegEx 
      --find "find_str_expression" --replace "replace_string"

Ответ 2

В моей жизни я написал что-то вроде 2-х партийных скриптов, но вот как взять ввод из командной строки:

script.bat filepath find replace
%1 = filepath, %2 = find, %3 = replace

Чтобы сделать замену, сделайте что-нибудь вроде:

for /f "tokens=1,* delims=]" %%A in ('"type %1|find /n /v """') do (
set "line=%%B"
if defined line (
    call set "line=echo.%%line:%~2=%~3%%"
    for /f "delims=" %%X in ('"echo."%%line%%""') do %%~X
    ) ELSE echo.
)

(взято непосредственно из ссылки, отправленной @russ, с измененными номерами переменных.)

Я думаю, это должно сработать для вас.