批处理中call set是怎么传递的,具体用法是什么,帮忙举例解释一哈!谢谢!

2024-11-22 12:59:18
推荐回答(1个)
回答(1):

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