打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
DOS批处理命令

 1、截取字符串

从指定变量中截取指定位置的字符串,并返回。*这个处理,并不改变变量的值

语法格式:%变量名:~开始位置,终了位置% 

注:正数的时候开始位置是从0开始向右计算,负数的时候从1开始向右计算。(跳的个数为指定开始位置的绝对值)

具体有以下几种截取方式,看实例去理解用法,这个时候,我们假设有一个变量【var】,其值为【1234567890】。

①正常路线:

%var:~5,2% ⇒ 67

②无终了:

%var:~5% ⇒ 67890

③负终了:

%var:~5,-2% ⇒ 678

④负开始位置:

%var:~-6,2% ⇒ 56

⑤负开始无终了:

%var:~-6% ⇒ 567890

⑥负开始负终了:

%var:~-6,-2% ⇒ 5678

⑦没有开始:

%var:~,4% ⇒ 1234

⑧无开始无终了:

%var% ⇒ 1234567890

正常的情况下,就这几种截取的情况,完全可以根据我们业务的需要,来使用不同的方法来截取字符串。

这个字符串截取中,还是有几个规律的

A、开始位置的计算:当开始位置指定为正数的时候,我们就可以从左侧开始查找开始位置(左侧第一个字符为0)

              当开始位置省略或者为0的时候,开始位置那个字符就是要截取的开始字符。

              当开始位置指定为负数的时候,我们就可以从右侧开始查找指定位置(右侧第一个字符为-1)

B、终了位置的计算:当终了位置指定为正数的时候,我们就可以从上述计算得到的终了位置查找终了位置(开始位置为1)

              当终了位置省略或者为0的时候,字符串的终了位置就是要截取字符串的终了位置

              当终了位置指定为负数的时候,我们就可以从右侧开始查找指定位置(右侧第一个字符为0)

C、最终截取的字符串就是开始位置到终了位置之间的字符串(包括开始位置和终了位置)

------------------------------------------------------------------------------------------------------------------------------------------------------

但是,这个字符串截取是不是有异常发生呢?有,也没有。

当要截取的字符串不为空,并且,要截出的字符串不不能正常截出的时候,返回结果就是空值。

当要截取的字符串本身就是空的时候,取得结果就是【~开始位置,终了位置】,也就是命令的一部分被返回出来。

接下来继续讨论这个问题,既然要截取的字符串为空的时候,解出来的东西乖乖的,那我们能不能不让它进去呢?当然,我们使用我们已知的字符串判断函数就是可以的。

例如下面代码的处理:

@echo offset var=IF DEFINED var (    echo DEFINED    echo %var:~1,1%) else (    echo NOT DEFINED)

运行结果为:

F:\tmp>a.bat
NOT DEFINED

可见,当var为空的时候,分支根本就没有走进去。程序显然没有走进去,

当分歧没有进去的时候,在该分歧内,我即使写不合法的命令,也不会报错的,不信你可以试试,反正我是试过了。

但是,下面这一点,就有点费解了,且看代码:

@echo offset var=IF DEFINED var (    echo DEFINED    IF %var:~1,1% EQU A (        echo true    )) else (    echo NOT DEFINED)

这个时候,红色字体部分虽然跑不到,但是,竟然跑不过,所以,我就郁闷了。(报1的使用方法不对。--1 の使い方が誤っています。)

batch程序的执行方式是什么的?不知道,想知道,但是,又不知道到哪里知道去。

 

2、字符串替换

字符串替换,就是把某一字符串中的特定字符或字符串替换为给定的字符串

语法结构:%变量名:替换前=替换后%

替换前不可以为空,但是,替换后可以为空

还有一点,变换前和变换后不能用变量表示,而变量名只能有变量名来表示。

例:%var:123=abc%

 

3.字符串拼接,直接将两个字符串放到一块儿就可以了。

例如:字符串123和abc拼接,那么就可以写成123abc

如果是字符串变量123和abc拼接,那么就可以写成%123%%abc%

 

4、字符串查找,例如,查找字符串345在字符串123456789123456789中位置

哈哈,这个我还不知道,以后知道了再补上去。如果系统没有给出方法的话,就只能写方法查找了。

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
批处理入门手册
dos命令字符串
PHP substr(),substr函数 返回字符串的子串
typeset
PHP 变量类型的强制转换
Linux Bash Shell快速入门
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服