标题: [文本处理] 批处理如何使用for嵌套? [打印本页]
作者: jay_16 时间: 2011-4-9 22:30 标题: 批处理如何使用for嵌套?
看一下这段代码中的两个for循环- @echo off
- for %%a in (c d e f g) do (
- echo %%a
- )
- for /r g: %%i in (*.ini) do (
- echo %%i
- )
- pause
复制代码
可以正常运行,并显示。可是我想要- @echo off
- for %%a in (c d e f g) do (
- echo %%a:
- for /r %%a: %%i in (*.ini) do echo %%i
- )
- pause
复制代码
可是窗口一闪而过!?这是为什么?还有为什么不可以for里做注释?
像这样- @echo off
- for %%a in (c d e f g) do (
- echo %%a
- ::echo
- )
- pause
复制代码
窗口也会一闪而过?
作者: wc726842270 时间: 2011-4-9 23:33
感觉上好久没发代码了- @echo off
- for %%a in (c d e f g) do (
- echo %%a
- rem echo
- )
- pause
复制代码
“为什么”我也不知道,不过LZ最好多试几遍
作者: hanyeguxing 时间: 2011-4-9 23:39
1,不要在()内使用:或::。注释使用rem
2,for /开关 %%a in (set) do (命令) 中
仅()中可以使用预处理阶段不能完全扩展的变量,其他地方不允许
以 for /r "地址" %%a in (set) do (命令) 为例
""中的地址进可以使用直接变量%a%和参数%1类,而不可以使用延迟变量!a!或for扩展变量%%a
for /f "关键字" %%a in (set) do (命令) 中的关键字也是如此
作者: jay_16 时间: 2011-4-10 14:17
3# hanyeguxing
能帮我解决一下与上面代码意思等效的代码吗?十分感谢
作者: hanyeguxing 时间: 2011-4-10 14:25
- @echo off
- for %%a in (c d e f g) do call:a %%a
- pause&exit
- :a
- echo;分区 %1:
- for /r "%1:" %%a in (*.ini) do echo;%%a
复制代码
作者: jay_16 时间: 2011-4-10 16:06
5# hanyeguxing
谢谢。
顺便问一下。%~ni,%~di等从文件名中扩展的用法是不是只能用在for循环中?
如果不是的话,那在不在for中的用法是什么?
十分感谢....
作者: hanyeguxing 时间: 2011-4-10 17:25
示例:- @echo off
- echo;批处理文件名是%~n0
- set "a=d:\1 2 3.txt"
- call:a "%a%"
- for %%a in ("%a%") do echo for 扩展其文件名%%~na
- pause&exit
- :a
- echo 参数 扩展其文件名%~n1
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |