谁能帮忙解释下以下这段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
)
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
语法:
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 文件的命令文件
1 生成编译命令文件
2 生成object文件列表
3 生成删除 object 文件的命令文件
作者: fox000002 发布时间: 2011-05-20