找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 24285|回复: 3

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

[复制链接]
发表于 2021-4-20 22:16:38 | 显示全部楼层 |阅读模式
  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%那个我根本不知道为什么会出现这个结果
发表于 2021-4-20 22:47:34 | 显示全部楼层
去看教程,预处理
第一次处理,从前到后每遇到%%号消去一个变成%

  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%"
复制代码
 楼主| 发表于 2021-4-21 18:03:16 | 显示全部楼层
回复 2# newswan


    我测试了下,大概理解了
%b%没有定义输出 空 a%%号输出 a%
发表于 2021-4-21 21:41:37 | 显示全部楼层
批处理默认对百分号预处理一次,但是可以人为加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"
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 13:22 , Processed in 0.016759 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表