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

[文本处理] 批处理变量扩展在变量截取中怎么用?

echo %a:~0,!m!%
echo %a:~0,%m%%
echo !a:~0,%m%!
echo !a:~0,!m!!
这几句是怎么编译完成的?请说明这几句的详细编译步骤~
同时请问在if,for语句中这几句应用用变化吗?
请教一下!!!!!

我也想知道,我只知道
延时才可用echo !a:~0,%m%!
  1. @echo off
  2. :1
  3. set a=变量截取
  4. set m=1
  5. echo %a:~0,!m!%
  6. echo %a:~0,%m%%
  7. echo !a:~0,%m%!
  8. echo !a:~0,!m!!
  9. pause>nul
  10. echo *************下面开启延迟**********
  11. setlocal enabledelayedexpansion&goto 1
复制代码
输出结果
a:~0,!m!
m%
!a:~0,1!
!a:~0,!m!!
*************下面开启延迟**********
a:~0,1
m%

m


[ 本帖最后由 leap 于 2010-10-12 14:24 编辑 ]

TOP

批处理是解释执行的,不需要编译。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

那请问一下
set m=1
set “a=xxw"
echo %a:~0,!m!%
echo %a:~0,%m%%
echo !a:~0,%m%!
echo !a:~0,!m!!
这几句是怎么解释执行的呢?
在for,if语句中有什么区别吗?

TOP

回复 2楼 的帖子

关于SET截取
http://www.bathome.net/viewthread.php?tid=996&highlight=set
另外echo !a:~0,%m%!是因为开启了SETLOCAL ENABLEDELAYEDEXPANSION
所以用echo !a:~0,%m%!代替了原来的echo %a:~0,%m%%(也就是用!代替了%)

TOP

批处理set命令截取字符详解
http://bbs.bathome.net/thread-996-1-1.html

批处理set命令变量字符截取点点通
http://bbs.bathome.net/thread-40-1-1.html

批处理新手set命令截取字符练习工具
http://bbs.bathome.net/thread-1149-1-1.html

批处理中的变量延迟扩展、变量嵌套
http://bbs.bathome.net/thread-2899-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表