Как заменить текст в текстовом файле с помощью скрипта bat-файла? - PullRequest
12 голосов
/ 29 марта 2011

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

Обычно я хочу, чтобы у него был такой API:

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

Ответы [ 3 ]

7 голосов
/ 29 марта 2011

Я написал что-то вроде 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, с измененными номерами переменных.)

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

7 голосов
/ 18 января 2013

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

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

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

Пример:

fnr --cl --dir "" --fileMask "hibernate.*" --useRegEx 
      --find "find_str_expression" --replace "replace_string"
3 голосов
/ 29 марта 2011

Быстрый поиск в Google нашел это:

http://www.dostips.com/?t=Batch.FindAndReplace

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