Хотя текущая версия программы NHRPLC v2.3 не имеет функции обработки подкаталогов (Recurse subfolders), выполнить программу NHRPLC по отношению к файлам во всех подкаталогах можно с помощью средств командной строки Windows — команды FOR /R.
Подробное описание команды FOR можно получить, набрав в командной строке help for. Нас интересует фрагмент с ключом /R:

FOR /R [[диск:]путь] %переменная IN (набор) DO команда [параметры]

    Выполнение команды для каталога [диск:]путь, а также для всех
    подкаталогов этого пути.  Если после ключа /R не указано имя
    каталога, используется текущий каталог. Если набор - это
    одиночный символ точки (.), команда просто перечисляет дерево каталогов.

Удобнее всего оформить это решение в виде командного файла NHRPLCR.CMD:

@echo off
for /r %%a in (.) do pushd "%%a" & cd & nhrplc %* & popd

Для каждого каталога выполняется 4 команды:
pushd – переход в каталог,
cd – вывод названия каталога,
nhrplc %* – выполнение nhreplace с параметрами, заданными при запуске командного файла,
popd – возврат в исходный каталог.

Тогда следующая команда сделает замену Foo на Bar во всех файлах *.cpp и *.h текущего каталога и всех подкаталогов:

nhrplcr -spt:"Foo" -t:"Bar" *.cpp *.h

Обновление

Начиная с nhreplace v2.4, в программу добавлена замена текста также во вложенных каталогах (подкаталогах) ключом -r (recursive), поэтому рекомендуется использовать новую возможность.

См. также

Узнать больше об актуальной версии программы nhrt (nh replace text) и скачать её можно по ссылкам ниже

Замена текста в подкаталогах (cmd)
Метки:

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

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