Хотя текущая версия программы 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) и скачать её можно по ссылкам ниже