标题: [其他] 批处理命令call echo %%b%%a%%%% [打印本页]
作者: wangsen 时间: 2021-4-20 22:16 标题: 批处理命令call echo %%b%%a%%%%
- @echo on
- set a=1
- set b1=10
- call echo %%b%%a%%%%
- call echo "%%b%%a%%%%"
- call echo %%b%a%%%
- call echo "%%b%a%%%"
- pause
复制代码
C:\>set a=1
C:\>set b1=10
C:\>call echo %b%a%%
a%
C:\>call echo "%b%a%%"
"a%"
C:\>call echo %b1%
10
C:\>call echo "%b1%"
"10"
C:\>pause
请按任意键继续. . .
谁能给我讲解一下这个是怎么出来的,我是新手,那个10那个我勉强能理解,但是不知道什么原理,那个a%那个我根本不知道为什么会出现这个结果
作者: newswan 时间: 2021-4-20 22:47
去看教程,预处理
第一次处理,从前到后每遇到%%号消去一个变成%- call echo %b%a%%
- call echo "%b%a%%"
- call echo %b1%
- call echo "%b1%"
复制代码
之后第二次运行call- echo %b%a%%
- echo "%b%a%%"
- echo %b1%
- echo "%b1%"
复制代码
作者: wangsen 时间: 2021-4-21 18:03
回复 2# newswan
我测试了下,大概理解了
%b%没有定义输出 空 a%%号输出 a%
作者: 路过 时间: 2021-4-21 21:41
批处理默认对百分号预处理一次,但是可以人为加call,进行多次预处理。
第一次- call echo %b%a%%
- call echo "%b%a%%"
- call echo %b1%
- call echo "%b1%"
复制代码
call后- echo a%
- echo "a%"
- echo 10
- echo "10"
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |