请问批处理中的%%f是什么意思?
在批处理文件中看到了
%%f, 查了一下,表示%f,
可是查不到%f表示什么意思。。
还有一个就是有一句话是这样的
set progs=!progs!
请问这个如何理解呢
请问有熟悉的吗?
出现在如下的批处理中
setlocal enabledelayedexpansion
for %%f in (program*.*) do @if not %%f==programbt.c if not %%f==programpatch.c if not %%f==programsim.cset progs=!progs! %%f
type programbt.c%progs%
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
谢谢回复,%f貌似是个变量? 那%f这个变量之前没有声明过,他是怎么个理解法呢?
回复
很多编程语言都是foreach类型的循环,会将每次迭代出的对象赋给一个变量。就是这种用法。
%%是转义,实际输出将是%。在xp时代,帮助文档中关于批处理这里是有明确说明的,是有相关解释的,你的for循环如果是写在批处理文件中,那么必须使用%%a代替%a。有兴趣的话你找找在线的批处理帮助文档。
!var!引用变量大多数情况和%var%引用效果一致,但是在setlocal enabledelayedexpansion选项开启的时候有特殊用途。
我的批处理压制视频的脚本也有这样的用法,并且你也只能这么用: http://git.oschina.net/abcfy2/simple_video_compress_build/blob/master/%E8%AF%B7%E6%8A%8A%E8%A7%86%E9%A2%91%E6%8B%96%E6%8B%BD%E8%87%B3%E6%AD%A4%E5%A4%84%E5%8E%8B%E5%88%B6%E8%A7%86%E9%A2%91.cmd