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

[原创] 批处理命令set截取字符详解

[复制链接]
发表于 2009-8-3 12:27:17 | 显示全部楼层
非常感谢楼主,现在也明白了.
%var:~m,n%   省略M个,保留N个
%var:~-m,-n%   保留最后m个,抛弃最后n个
发表于 2009-8-3 16:31:37 | 显示全部楼层
学到新东西了感谢lz,我会好好学滴
发表于 2009-8-18 09:35:43 | 显示全部楼层
我觉得楼主应该写清楚,字符串是以“\0”结尾的!所以取逆的时候是从"\0"取起的。

[ 本帖最后由 lazygc520 于 2009-8-18 09:38 编辑 ]
发表于 2009-10-27 14:38:30 | 显示全部楼层
先来学习学习了!!!
发表于 2009-10-28 16:42:34 | 显示全部楼层
谢谢分享,学习了!!
发表于 2009-11-27 17:25:39 | 显示全部楼层
测试一下:
set str=12345
echo %str:~1,2%
输出12
学会了,谢谢
发表于 2009-12-3 12:42:55 | 显示全部楼层
支持!!!!!!!!!!!!
发表于 2009-12-5 13:21:19 | 显示全部楼层
收藏了  非常有用   多谢了
发表于 2010-1-17 18:09:44 | 显示全部楼层

哈哈。写的太详细了,累着你了吧。
发表于 2010-1-26 14:52:01 | 显示全部楼层
看着有点晕,我是这么理解的。
set var=%str:~数值1,数值2%
数值1:正前舍,负后取;
数值2:正前取,负后舍;(数值2的规则是在数值1取数完成后)
这样是好记点,但不知道对不对。

[ 本帖最后由 gxuan2008 于 2010-1-26 14:54 编辑 ]
发表于 2010-1-26 15:24:30 | 显示全部楼层
学问多多啊。多谢分享
发表于 2010-4-3 20:44:09 | 显示全部楼层
这篇教程确实不错。学习了。
发表于 2010-8-25 16:26:34 | 显示全部楼层

回复 13楼 的帖子

看来还是要总结规律啊 呵呵
发表于 2011-1-25 22:25:07 | 显示全部楼层
讲的很详细,学习了。。。
发表于 2011-1-26 14:19:54 | 显示全部楼层

本来也想发个教程的,原来早就发了

(另一种理解set命令截取字符的方法)
假设有以下这么个批处理:
  1. @echo off
  2. set h=heblo
  3. echo %h:~数值1,数值2%
  4. pause
复制代码
当数值1为正数2时,意为截掉左边前2个字符并保留剩下的,当数值1为负数-2时,意为截取右边2个字符到“保留剩下的”。
当数值2为正数2时,意为截取“保留剩下的”左边2个字符,当数值2为负数-2时,意为截掉“保留剩下的”右边2个字符。

来句口诀:
正左负右。
数值1,正左截掉,负右截取。
数值2,正左截取,负右截掉。

理解偏移的口诀:
还是针对前面的代码,首先想象在 heblo前有个小数点,即 .heblo
正左到右,负右到左。
数值1,始终截取右边部分。
数值2,始终截取左边部分。

[ 本帖最后由 Hello123World 于 2011-1-27 10:48 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 05:10 , Processed in 0.019041 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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