关于批处理call set ~~

@echooffcolorfcsetb=69setspace=:bset/ab-=2callsete=%%space:~0,%b%%%echo%e%nping/n2127... @echo off
color fc
set b=69
set space=
:b
set/a b-=2
call set e=%%space:~0,%b%%%
echo %e%n
ping /n 2 127.1>nul&cls
goto b
pause

@echo off
color fc
set b=69
set space=
:b
set/a b-=2
set e=%space:~0,%b%%
echo %e%n
ping /n 2 127.1>nul&cls
goto b
pause

看这两段代码,为什么第二种不可以呢,还有第一种为什么要用到CALL,是什么意思?还有为什么要用的两组%(%%space:~0,%b%%%).不要用延迟
注:space= 后边是"空格"并不是空值.希望高手解答 谢谢 谢谢~~~
展开
 我来答
小楼_春雨
2007-07-21 · TA获得超过642个赞
知道大有可为答主
回答量:843
采纳率:0%
帮助的人:1210万
展开全部
call 在这里起到延迟变量的作用,当要对一个变量进行两次"陪坦脱壳"处理时,就要启动延迟变量
你的代码,假设set space=abcd (若是空值,不好解释)
第一次脱壳为 set e=%space:~0,2%
第二次脱壳为 set e=ab
同理,用咐野延迟变量同样可以.如下代码.
可以看到,结果都一样,一个是用call,一个是用芦简桐延迟变量.
@echo off
set c=2
set a=123
call set b=%%a:~0,%c%%%
echo %b%
pause

setlocal enabledelayedexpansion
set b=!a:~0,%c%!
echo !b!
pause
王者荣耀屡败屡战
2007-07-20 · TA获得超过208个赞
知道小有建树答主
回答量:863
采纳率:36%
帮助的人:189万
展开全部
CALL 的意思是调用,使用,起用。。。。
第液毁2种没有使用这个命令根本就不谈空好使,你这闹侍备是一个PING地址的批处理文件吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式