请问批处理中连续的的两个百分号%%是什么意思 谢谢!

来源:百度知道 编辑:UC知道 时间:2024/05/26 02:30:56
两个百分号分开中间是字符我知道是表示环境变量 但连续的%%是什么意思啊 我感到有点抽象 下面是一段代码:
echo 正在清理系统升级补丁留下的反安装目录 ……
dir %systemroot%\$*$ /a/b/d > %systemroot%\vTmp.txt
for /f %%a in (%systemroot%\vTmp.txt) do td /s/q "%systemroot%\%%a"
我知道for……in……do……这个命令 只是其中的%%a不太理解 请高人指教 谢谢!

%%是在批处理文件中变量符号,如果在CMD执行的话就应该是一个%。批处理文件在被解析的时候其中一个%被过滤掉,所以才用两个。

以上语句可以在CMD中执行:

for /f "delims=" %a in ('dir %systemroot%^\$*$ /a/b/d') do td /s/q "%systemroot%\%a"

可以看出此时即是一个%。另外%%在批处理文件中还可以表示取模计算,即两个数相除得到的余数。由此得知,%%并非for循环特有。

两个%%是for循环中特有的,用他代替in()中的每个变量分别处理。

比如:for %%i in (*.txt) do type "%%i"

这时当前目录下所有txt文件的内容都被显示出来,意思就是
type了每一个txt内容。

对, 千羽之城说的对,cmd中for要用一个百分号。向您学了一招:6%%5=1,感谢!
@echo off
set /a a=6%%5
echo %a%
pause

for 特有的