it编程 > 前端脚本 > Dos/bat

bat批处理之字符串操作的实现

95人参与 2024-05-19 Dos/bat

通常情况下,任何一种语言对于字符串的操作都是重中之重。这里稍微介绍下bat批处理中对于字符串的操作。

对于字符串的截取

set teststr=abcdefghijklmnopqrstuvwxyz0123456789
echo 原始字符串 %teststr%
echo 提取前五个字符串:%teststr:~0,5%
echo 提取最后五个字符串:%teststr:~-5%
echo 提取第一个到倒数第六个字符串:%teststr:~0,-5%
echo 提取五个字符串,从第四个字符开始:%teststr:~3,5%

字符串的替换

echo 替换之前:%repstr%
echo 替换后:%repstr:aa=zz%
echo repstr=%repstr%
set "repstr=%aa:aa=zz%"
echo repstr=%repstr%

字符串合并

set aa=aabbcc
set bb=ddeeff
echo %aa%%bb%
echo aa=%aa%
echo bb=%bb%
set "aa=%aa%%bb%"
echo aa=%aa%

字符串查找

setlocal enabledelayedexpansion
::启用命令扩展,参加setlocal /?命令
set str1=this is a test string
set ch1=t
::注意,这里是区分大小写的!
set str=%str1%
::复制字符串,用来截短,而不影响源字符串
:next
if not "%str%"=="" (
set /a num+=1
if "!str:~0,1!"=="%ch1%" goto last
::比较首字符是否为要求的字符,如果是则跳出循环
set "str=%str:~1%"
goto next
)
set /a num=0
::没有找到字符时,将num置零
:last
echo 字符'%ch1%'在字符串"%str1%"中的首次出现位置为%num%
echo 输出完毕,按任意键退出&&pause>nul&&exit

这里直接贴上对应的bat批处理代码及其运行结果

bat 批处理代码

echo off
echo 完全路径:%0
echo 去掉引号:%~0
echo 所在分区:%~d0
echo 所在路径:%~p0
echo 文件名:%~n0
echo 拓展名:%~x0
echo 文件属性:%~a0
echo 修改时间:%~t0
echo 文件大小:%~z0
echo %d0%
echo dp0 : %~dp0
echo sdp0:%~dp0
echo fo:%~f0
echo cd %cd%
rem set 目标字符串=%源字符串:~起始值,截取长度%
set teststr=abcdefghijklmnopqrstuvwxyz0123456789
echo 原始字符串 %teststr%
echo 提取前五个字符串:%teststr:~0,5%
echo 提取最后五个字符串:%teststr:~-5%
echo 提取第一个到倒数第六个字符串:%teststr:~0,-5%
echo 提取五个字符串,从第四个字符开始:%teststr:~3,5%
echo ================================================
echo ================    字符串替换       ===========
echo ================================================
set repstr=aaabbbcccdddeeefff
echo 替换之前:%repstr%
echo 替换后:%repstr:aa=zz%
echo repstr=%repstr%
set "repstr=%aa:aa=zz%"
echo repstr=%repstr%
echo ================================================
echo ================    字符串合并       ===========
echo ================================================
set aa=aabbcc
set bb=ddeeff
echo %aa%%bb%
echo aa=%aa%
echo bb=%bb%
set "aa=%aa%%bb%"
echo aa=%aa%

setlocal enabledelayedexpansion
::启用命令扩展,参加setlocal /?命令
set str1=this is a test string
set ch1=t
::注意,这里是区分大小写的!
set str=%str1%
::复制字符串,用来截短,而不影响源字符串
:next
if not "%str%"=="" (
set /a num+=1
if "!str:~0,1!"=="%ch1%" goto last
::比较首字符是否为要求的字符,如果是则跳出循环
set "str=%str:~1%"
goto next
)
set /a num=0
::没有找到字符时,将num置零
:last
echo 字符'%ch1%'在字符串"%str1%"中的首次出现位置为%num%
echo 输出完毕,按任意键退出&&pause>nul&&exit

相应的运行结果

到此这篇关于bat批处理之字符串操作的实现的文章就介绍到这了,更多相关批处理字符串操作内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)
打赏 微信扫一扫 微信扫一扫

您想发表意见!!点此发布评论

推荐阅读

bat根据当前日期创建文件夹的方法

05-19

bat命令实现批量提取、去空格、修改文件名的方法

05-19

用BAT创建文件夹文件及回显环境变量的问题

05-19

bat批处理脚本中文乱码的解决

05-19

Windows环境bat脚本获取文件的创建时间

05-19

批处理copy命令的具体使用

05-19

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论