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

看了之后的小小总结

set命令截取方法总结
统一语法格式为:%a:~[m[,n]]%
方括号表示可选,%a%为变量名,不可少,冒号用于分隔变量名和说明部分,符号~可以简单理解为“偏移”即可,m为偏移量(缺省为0),n为截取长度(缺省为全部)
若m为正,表示从第1位向右偏移m位,从第m+1位开始(向右)截取。
若m为负,表示从最后1位向左偏移m位,从倒数第m位开始(向右)截取。
若n为正,表示从第一个开始截取的位开始,向右截取n个字符串。
若n为负,表示从第一个开始截取的位开始,向右截取至倒数第n位。



例1
@echo off
set a=bbs.verybat.cn
set var=%a:~-3,2%
echo %var%
pause >nul

结果为:
.c

区间为[-3,-3+2)

例2:
@echo off
set a=bbs.verybat.cn
set var=%a:~-6,-3%
echo %var%
pause >nul

结果为:
bat

将从倒数第6位(包括倒数第6位)开始截取,到倒数第3位(不包括倒数第3位)为止,区间为[-6,-3)。

TOP

返回列表