批处理中的变量作为命令的参数

1:@echooff2:@echooffsetn=1setm=123456setm=123456echo%m:~1,1%echo%m:~n,1%pausepause上面两... 1:@echo off 2:@echo off
set n=1 set m=123456
set m=123456 echo %m:~1,1%
echo %m:~n,1% pause

pause

上面两个小程序其实完成的目的是一样的,但为什么右边这个能正确的输出结果“2”,但左边这个输出的却是“m:~n,1”?

请高手解答,左边这个不对在哪里呢?谢谢!!!
展开
 我来答
nefu_20061617
推荐于2016-05-24 · TA获得超过2342个赞
知道大有可为答主
回答量:1064
采纳率:72%
帮助的人:1488万
展开全部
引用变量要加百分号,启用延迟变量扩充后可以用叹号引用变量,百分号引用的变量在语句执行前扩展,叹号引用的变量在语句执行时扩展。
@echo off
setlocal enabledelayedexpansion
set n=1
set m=123456
echo !m:~%n%,1!
pause
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式