Ссылка на все файлы в папке и ее подпапках определенного типа

В файле.bat я выполняю компилятор со строкой

cl -GL -Od -Zi <all .h files> <all .c files>

но я не знаю, как ссылаться на все файлы.c и.h таким образом. Я думал о */.c и */.h, но оба эти аргумента неверны. Можно ли как-то ссылаться на все файлы.c и.h?

1 ответ

Решение

cl не позволяет вам сделать это, но если вы хотите скомпилировать все файлы C в каждой папке, начиная с определенной точки, то вы можете сделать что-то вроде следующего.

Обратите внимание, что с этими параметрами команды вы также не можете передать файл заголовка.


@echo off
set USAGE=Usage: %~n0 "C:\Existent Start Dir"
if %1xx == xx ( echo %USAGE% & exit /b 2 )
if not exist "%~1" ( echo %USAGE% & exit /b 1 )
for /r "%~dpn1" %%f in (.) do (
  pushd %%f
  if exist *.c (
    echo *** Compiling C files in %%f ***
    call cl -GL -Od -Zi *.c
    echo.
  )
  popd
)

Проверьте это с помощью: test.cmd C:\mytest

Если C:\mytest содержит несколько папок простых файлов *.c и *.h, это будет работать. test.cmd C:\mytest

Возможно, вы действительно хотите вызвать nmake?

Другие вопросы по тегам