文章摘要
这篇文章介绍了一个命令行脚本,展示了如何通过`set`命令和`echo`命令进行字符串操作。主要内容包括: 1. **字符串操作**: - 提取字符串的子字符串(如前5个字符、最后5个字符、从第4个字符开始的5个字符)。 - 字符串替换(如将`aa`替换为`zz`)。 - 字符串合并(如将两个字符串拼接在一起)。 2. **命令扩展**: - 使用`Setlocal ENABLEDELAYEDEXPANSION`启用命令扩展功能,允许在脚本中使用更复杂的命令和环境变量。 3. **字符串查找**: - 通过循环查找目标字符串的首次出现位置,并输出结果。 总结:这篇文章通过命令行脚本展示了如何高效地进行字符串操作,适用于处理文件路径和属性等场景,提高了脚本的实用性和效率。
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%
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
© 版权声明
文章版权归作者所有,未经允许请勿转载。