[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] 批处理命令call echo %%b%%a%%%%

  1. @echo on
  2. set a=1
  3. set b1=10
  4. call echo %%b%%a%%%%
  5. call echo "%%b%%a%%%%"
  6. call echo %%b%a%%%
  7. call echo "%%b%a%%%"
  8. 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%那个我根本不知道为什么会出现这个结果

去看教程,预处理
第一次处理,从前到后每遇到%%号消去一个变成%
  1. call echo %b%a%%
  2. call echo "%b%a%%"
  3. call echo %b1%
  4. call echo "%b1%"
复制代码
之后第二次运行call
  1. echo %b%a%%
  2. echo "%b%a%%"
  3. echo %b1%
  4. echo "%b1%"
复制代码

TOP

回复 2# newswan


    我测试了下,大概理解了
%b%没有定义输出 空 a%%号输出 a%

TOP

批处理默认对百分号预处理一次,但是可以人为加call,进行多次预处理
第一次
  1. call echo %b%a%%
  2. call echo "%b%a%%"
  3. call echo %b1%
  4. call echo "%b1%"
复制代码
call后
  1. echo a%
  2. echo "a%"
  3. echo 10
  4. echo "10"
复制代码

TOP

返回列表