请问批处理中的%%f是什么意思?

Bearnerd 发布于 2016/06/14 12:38
阅读 1K+
收藏 0
Bat
在批处理文件中看到了
%%f, 查了一下,表示%f,
可是查不到%f表示什么意思。。


还有一个就是有一句话是这样的
set progs=!progs! 
请问这个如何理解呢

请问有熟悉的吗?

出现在如下的批处理中
setlocal enabledelayedexpansion
for %%f in (program\*.*) do @if not %%f==program\bt.c if not %%f==program\patch.c if not %%f==program\sim.cset progs=!progs! %%f
type program\bt.c%progs%
加载中
1
Feng_Yu
Feng_Yu

%%是转义,实际输出将是%。在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

Feng_Yu
Feng_Yu
回复 @Bearnerd : 很多编程语言都是foreach类型的循环,会将每次迭代出的对象赋给一个变量。就是这种用法。
B
Bearnerd
谢谢回复,%f貌似是个变量? 那%f这个变量之前没有声明过,他是怎么个理解法呢?
返回顶部
顶部