%a:~-3%=“com”偏移量负3,即倒数3位(也可理解为留下右边3位),右取全部
%a:~3% =“.wuyou.com” 偏移量3(也可理解为去掉左边3位),右取全部
%a:~0,-3% =“bbs.wuyou.” 偏移量0,右取长度至负3,即倒数3位
%a:~2,-3% =“s.wuyou.”偏移量2,右取长度至负3,即倒数3位
**********************************************
所以,截取功能统一语法格式为:%a:~[m[,n]]%
**********************************************
方括号表示可选,%a%为变量名,不可少,冒号用于分隔变量名和说明部分,符号~可以简单理解为“偏移”即可,m为偏移量(缺省为0),n为截取长度(缺省为全部)
上面所述用法其实相当于vbs函数mid、left、right
%a:~0,n%相当于函数left(a,n)取左边n位
%a:~-m%相当于函数right(a,m) 取右边m位
%a:~m,n% 相当于函数mid(a,m+1,n) 从m+1位开始取n位
%a:~m,-n% 相当于函数mid(a,m+1,len(a)-m-n),从m+1位开始,至倒数n+1位
%a:~m %相当于函数mid(a,m+1,len(a)-m) 或者right(a,len(a)-m),从m+1位开始取右边全部。
思考题目:输入任意字符串,求字符串的长度
参考答案:
| @echo off set /p str=请输入任意长度的字符串: echo 你输入了字符串:"%str%" call :stringlenth "%str%" num echo 字符串长度为:%num% pause exit :StringLenth ::---------字符串长度计算子程序 ::---------参数%1为字符串(如有空格,请用引号括起来) ::---------参数%2为返回变量名称,不能含空格或特殊字符 :echo off set theString=%~1 if not defined theString goto :eof set Return=0 :StringLenth_continue set /a Return+=1 set thestring=%thestring:~0,-1% if defined thestring goto StringLenth_continue if not "%2"=="" set %2=%Return% goto :eof |
好了set的一些用法,就介绍到这了,希望对各位有所帮助,时间不早睡觉Zz....
by 伤脑筋
第六章 if命令讲解
最近发现有些朋友一老问IF命令的用法,IF命令个人觉得很简单,所以就一直没把发放到新手教学贴里说,现在我给补上一文,希望对各位"非常BAT的"新手朋友们有所帮助.
现在开始:
在CMD使用IF /?打开IF的系统帮助(自己看我就不全部列出来了),我们会发现IF有3种基本的用法!
执行批处理程序中的条件处理。
IF [NOT] ERRORLEVEL number command
IF [NOT] string1==string2 command
IF [NOT] EXIST filename command
NOT 指定只有条件为 false 的情况下, Windows XP 才
应该执行该命令。
ERRORLEVEL number 如果最后运行的程序返回一个等于或大于
指定数字的退出编码,指定条件为 true。
string1==string2如果指定的文字字符串匹配,指定条件为 true。
EXIST filename如果指定的文件名存在,指定条件为 true。
command 如果符合条件,指定要执行的命令。如果指定的









