谁能帮忙解释下以下这段bat命令什么意思?

for /r "%SOURCE_FILE%" %%i in (*.c) do (
set FileName=%%i
echo %COMPILER_DOING% "!FileName!" -o "!FileName:~0,-1!o" >>%PROJECT_PATH%\%PROJECT_NAME%_CompileCmdGen.bat
echo !FileName:~0,-1!o >>%PROJECT_PATH%\objfiles.list
echo @del /f /s !FileName:~0,-1!o >>%PROJECT_PATH%\delOut.bat

)

作者: zhongyunde   发布时间: 2011-05-20

for命令其实就是一个循环命令,如果我们想重复一个语句,就可以用for命令.通过for命令,可以控制循环的次数等.

语法:

FOR %variable IN (set) DO command [command-parameters]

%variable 指定一个单一字母可替换的参数。

(set) 指定一个或一组文件。可以使用通配符。

command 指定对每个文件执行的命令。

command-parameters

为特定命令指定参数或命令行开关。

在批处理文件中使用 FOR 命令时,指定变量请使用 %%variable

而不要用 %variable。变量名称是区分大小写的,所以 %i 不同于 %I.

不知道你你看懂了没有,其实还是很容易理解的,还是举个例子吧.我想用type打印所有c盘根目录下的bat文件和txt文件.dos底下命令就是 type *.bat *.txt.先将该文件保存在c盘根目录下,名称为a.bat

用for命令如下:

for %%t in (*.bat *.txt) do type %%t

%%t其实就是代表的一个参数,他的内容在in() 里面括号里的内容.也就是说这句话里的%%t就变成了*.bat *.txt了.do就是做的意思,执行type命令,而type后面是%%t,而%%t又是*.bat *.txt.所以原来这句命令的意思就变成了:

type *.bat *.txt

作者: zhongyunde   发布时间: 2011-05-20

脚本里使用了变量延迟展开,三句 echo 命令生成三个文件

1 生成编译命令文件

2 生成object文件列表

3 生成删除 object 文件的命令文件

作者: fox000002   发布时间: 2011-05-20