バッチファイル

やっと、コンパイルが出来るようになりました。
いやはや、大変だった…。
とりあえず、作ったバッチファイルを貼り付け。

setlocal ENABLEDELAYEDEXPANSION
@echo off
set /A i=1
for /F %%A in ('dir /b ..\Output\*.c') do (
set x[!i!]=%%A
set /A i+=1
)
cl .\test.c ..\Output\%x[1]% ..\Output\%x[2]% /I ..\Output\usedlib /I ..\Output
@echo on
pause

指定のフォルダ(↑では..\Output\)にc言語ファイル(*.c)を二つ入れておくと、
指定フォルダのC言語ファイル+"test.c"をコンパイルしてくれます。
ポイントは一行目の「setlocal ENABLEDELAYEDEXPANSION」と五行目の「set x[!i!]=%%A」
バッチファイル内の変数を参照する場合は、%(パーセント)をつかうんだけど、
上の例で五行目を「set x[%i%]=%%A」とすると、うまく動作しません。
%で指定すると、for内の「set /A i+=1」が適用されるのはループを抜けた後になるみたい。
(つまり、x[1]から順番に代入するはずが、x[1]だけに代入される)
そこで、さっき書いた二つを使用します。
詳しい話は他のサイトで確認してみてください。