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

目录
  • 对于字符串的截取
  • 字符串的替换
  • 字符串合并
  • 字符串查找
  • 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)

相关推荐

  • 批处理中字符串分割实现代码

    批处理 字符串分割 实例 使用for命令可以对字符串进行分段处理. 分割字符串 @echo off ::定义一个以分号作为分隔的字符串 set str=AAA;BBB;CCC;DDD;EEE;FFF ::str的副本 set remain=%str% :loop for /f "tokens=1* delims=;" %%a in ("%remain%") do ( ::输出第一个分段(令牌) echo %%a rem 将截取剩下的部分赋给变量remain,其实这里

  • 字符串截取功能批处理

    复制代码 代码如下: ::code by lxmxn @ cn-dos.net . ::目的:帮助新手们更好的理解变量字符截取功能. ::Date 2006-12-16 . ::说明:有的变量截取之后值为空,这是正常的. :: @echo off&setlocal EnableDelayedexpansion ::设置变量var的值: set var=0123456789ABCDEF call :begin for /l %%a in (1,3,15) do ( for /l %%b in (1

  • 字符串拼接的批处理

    复制代码 代码如下: @echo off :: 每6行拼接为一行,剩余的不够6行的显示在最后一行 :: :: set num=0 setlocal enabledelayedexpansion for /f "delims=" %%i in (a.txt) do ( set /a num+=1 set str=!str! %%i if !num! equ 6 echo !str! && set num=0 & set str= ) if not "%s

  • 批处理按要求将字符串分段输出的实现代码

    一.要求用批处理随机输出200个字符到1.txt中的一行,内容类同如下: 代码: xh45q3ma+remgofm54sevhrna4g5r8pl9cjardezqjwj3m8itamh0a4itzd6jz8cmrfmibmhr0wmccyb8qnp2qh4rvlwff6yr2ez4eo063u6viy7ppw+nzxaxe8vrm190eei_0dwx5e2kxbds-ae6e96c9_i9glw8mz+uf6uienx9od8bktfnjlwlqu-e1rcj33_+4bz 二.要求用批处理

  • 将字符串小写转大写并延时输出的批处理代码

    出题目的 1 掌握大.小写互换的技巧 2 掌握延时输出技巧 3 掌握字符截取技巧 解题要求 1 确保代码高效.通用 2 尽量简洁代码 3 不生成临时文件 加分规则 1 思路独特基准分5分 2 代码高效.通用基准分4分 3 技巧高超基准分3分 4 代码简洁基准分2分 5 完美代码加分15分 题目如下 有一字符串i like the bathome,because here is the batch of the world. 要求用批处理将字符串的所有字母转成大写并在屏幕上以打字的效果延时输出.

  • 批处理中如何判断参数中含有某些字符串?

    批处理中如何判断参数中含有某些字符串? 一般情况判断完全匹配的时候用== 复制代码 代码如下: @echo off if "%1"=="abc"  @echo OK 但是部分匹配怎么写呢?比如判断参数中前三个字符是"abc"时 复制代码 代码如下: @echo off echo %1|findstr "^abc" >nul echo %errorlevel% 测试结果如下: C:\>test xixi 1 C:\&

  • 批处理命令教学之字符串排序(sort)

    帮助信息: 复制代码 代码如下: SORT [/R] [/+n] [/M kilobytes] [/L locale] [/REC recordbytes]   [[drive1:][path1]filename1] [/T [drive2:][path2]]   [/O [drive3:][path3]filename3]   /+n                         指定开始每个比较的字符号码 n./+3 说明每个                               比

  • BAT批处理中的字符串处理详解(字符串截取)

    下面对这些功能一一进行讲解. 1.截取字符串 截取字符串可以说是字符串处理功能中最常用的一个子功能了,能够实现截取字符串中的特定位置的一个或多个字符.举例说明其基本功能: 复制代码 代码如下: @echo off set ifo=abcdefghijklmnopqrstuvwxyz0123456789 echo 原字符串(第二行为各字符的序号): echo %ifo% echo 123456789012345678901234567890123456 echo 截取前5个字符: echo %if

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

    目录 对于字符串的截取 字符串的替换 字符串合并 字符串查找 bat批处理代码 通常情况下,任何一种语言对于字符串的操作都是重中之重.这里稍微介绍下bat批处理中对于字符串的操作. 对于字符串的截取 set testStr=abcdefghijklmnopqrstuvwxyz0123456789 echo 原始字符串 %testStr% echo 提取前五个字符串:%testStr:~0,5% echo 提取最后五个字符串:%testStr:~-5% echo 提取第一个到倒数第六个字符串:%t

  • BAT批处理实现字符串截取功能

    获取当前的小时数: @ECHO OFF SET Hour=%TIME:~0,2% IF %Hour% GTR 12 ( ECHO Afternoon ) ELSE ( ECHO Morning ) 打印Windows的版本号: @ECHO OFF FOR /F "tokens=1,2,3,4" %%I IN ('VER') DO ( SET Ver_Temp=%%L ) SET Ver_Major=%Ver_Temp:~0,1% SET Ver_Minor=%Ver_Temp:~2,1

  • bat与注册表操作的方法分析 原创

    bat(批处理)操作注册表的方法,我知道的应该有两种1,结合用reg.exe实现读写注册表2,用bat输出文件,然后regedit /s 1.reg 这样的格式来实现 输出vbs等都是这种 echo cmd.exe /k dir c: > c:\windows\system32\1.bat reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v "test" /d "c:\win

  • 批处理将字符串或日期输出到Windows剪贴板的实现方法

    如下操作需要借助于clip.exe(C:\Windows\System32\clip.exe),系统自带,不需要下载. C:\Windows\System32>clip /?   CLIP   描述:     将命令行工具的输出重定向到 Windows 剪贴板.这个文本输出可以被粘贴     到其他程序中.   参数列表:     /?                  显示此帮助消息.   示例:     DIR | CLIP          将一份当前目录列表的副本放入 Windows 剪

  • BAT批处理、VBScript批量安装字体脚本分享

    根据新系统要求,经常要部署一些原来系统里没有的字体,原先我为了图省事经常会要求用户手动安装字体文件,虽然Windows的易用性做得相当不错,但是仍然要照顾一些不会安装字体的人,其实把这些字体打包进安装包更为方便,不过我觉得总不能每有新字体都要搞个安装包那么麻烦吧.更重要的是仍然有人会问我字体怎么安装,以前清一色的Windows XP系统,我倒也方便,直接告知打开控制面板找到字体文件夹,把要安装的字体拖进去即可:现在有Windows 7还是Windows 8等各种版本Windows系统,对于安装字

  • shell 字符串操作(长度,查找,替换)详解

    复制代码 代码如下: 工作中字符串操作举例 filename='/home/admin/jobs/CnClickstat/DFSLoader/loader.cfg' #下面是使用shell字符串操作 buName1=${filename#*/jobs/} #去除'/home/admin/jobs/CnClickstat/DFSLoader/loader.cfg'前缀得到'CnClickstat/DFSLoader/loader.cfg' buName1=${buName1%%/*} #去除'Cn

  • linux shell 字符串操作(长度,查找,替换)详解

    在做shell批处理程序时候,经常会涉及到字符串相关操作.有很多命令语句,如:awk,sed都可以做字符串各种操作. 其实shell内置一系列操作符号,可以达到类似效果,大家知道,使用内部操作符会省略启动外部程序等时间,因此速度会非常的快. 一.判断读取字符串值 表达式 含义 ${var} 变量var的值, 与$var相同     ${var-DEFAULT} 如果var没有被声明, 那么就以$DEFAULT作为其值 * ${var:-DEFAULT} 如果var没有被声明, 或者其值为空, 那

  • js字符串操作总结(必看篇)

    字符方法 <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>字符方法</title> </head> <body> <script type="text/javascript"> /* charAt方法和charCodeAt方法都接收一个参数,基于0的

  • BAT批处理判断服务是否正常运行的方法(批处理命令综合应用)

    先给大家普及下批处理的基本概念 批处理(Batch),也称为批处理脚本.顾名思义,批处理就是对某对象进行批量的处理,通常被认为是一种简化的脚本语言,它应用于DOS和Windows系统中.批处理文件的扩展名为bat 或cmd.目前比较常见的批处理包含两类:DOS批处理和PS批处理.PS批处理是基于强大的图片编辑软件Photoshop的,用来批量处理图片的脚本:而DOS批处理则是基于DOS命令的,用来自动地批量地执行DOS命令以实现特定操作的脚本.更复杂的情况,需要使用if.for.goto等命令控

随机推荐