1

Я должен использовать этот инструмент vera++ против нескольких файлов *.cpp и *.h . Я принимаю имя файла в качестве параметра. Как искать файлы *.cpp и отправлять их на vera++? Это однострочник или мне нужен пакетный скрипт?

2 ответа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
    Это, конечно, запускает команду один раз для каждого найденного файла.
  • Или вы можете сделать то, что сказал Гравити.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .