Я должен использовать этот инструмент vera++ против нескольких файлов *.cpp
и *.h
.
Я принимаю имя файла в качестве параметра.
Как искать файлы *.cpp
и отправлять их на vera++
?
Это однострочник или мне нужен пакетный скрипт?
1
2 ответа
3
Только текущая папка:
for %i in (*.cpp *.h) do vera++ "%~i"
Включая подпапки:
for /r . %i in (*.cpp *.h) do vera++ "%~i"
/r .
означает "начать в текущей папке". Если вы хотите указать другое имя папки, используйте for /r newfolder
.
3
Это одна строка в документации, конечно. Вот варианты:
- Делайте то, что говорится в документации. В документации сказано
находить . -имя '* .h' | xargs vera++ - профиль my_favourite
И с соответствующим набором инструментов, таким как собственный загружаемый набор утилит SFUA от Microsoft, который работает в подсистеме Windows 7 для приложений на основе UNIX (поставляется в комплекте с Windows 7 Ultimate Edition и Windows Server 2008 R2 - для Windows XP можно загрузить и установите Службы для UNIX версии 3.5.) У каждого есть такие инструменты, какfind
иxargs
для Windows. Есть, конечно же, GNUWin32, cygwin и unxutils. - Если вы используете TCC /LE от JP Software, вы можете использовать встроенную команду
SELECT
для интерактивного выбора файлов для обработки:ВЫБЕРИТЕ vera++ [*]
Обратите внимание на квадратные скобки, которые приводят к объединению всех имен файлов в одну команду. - Используя ортодоксальный файловый менеджер, такой как File Commander для Windows или FAR, вы можете аналогичным образом выбрать файлы для интерактивной обработки и вставить их в командную строку, нажав соответствующую клавишу.
- Если вы используете TCC /LE от JP Software, вы можете использовать встроенную команду
FOR
для обработки файлов после их поиска (скажем) с помощью командыDIR
:DIR /B /S * .cpp; *. H | FOR F IN (@CON) do vera++% F
или просто обработайте их напрямую, посколькуFOR
имеет опцию рекурсии:FOR / RF IN (* .cpp; *. H) DO vera++% F
Это, конечно, запускает команду один раз для каждого найденного файла. - Или вы можете сделать то, что сказал Гравити.