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批处理代码及其运行结果
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批处理之字符串操作的实现的文章就介绍到这了,更多相关批处理字符串操作内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论