Windows BAT批处理字符串相关操作(字符串定义、分割、拼接、替换、切片、查找)

这篇具有很好参考价值的文章主要介绍了Windows BAT批处理字符串相关操作(字符串定义、分割、拼接、替换、切片、查找)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 字符串定义

使用set来定义字符串

@echo off
set string1=Hello
echo %string1%

代码说明:

  1. 将字符串Hello赋值给string1的变量

2. 字符串拼接

使用 %string1%%string2% 的方式完成字符串的拼接。

@echo off
set string1=Hello
set string2=World
set combined1=%string1% %string2%
set combined2=%string1%,%string2%
set combined3=%string1%%string2%
set combined4=aaa%string1%bbb%string2%ccc
set "combined5=%string1%^&%string2%"
echo %combined1%
echo %combined2%
echo %combined3%
echo %combined4%
echo %combined5%

代码说明:

  1. 用来连接字符串的字符串,如果包含了特殊字符则需要使用^转义,并且需要使用""括起来,特殊字符包括(但不限于):
符号 作用
@ 命令行回显屏蔽符
% 批处理变量引导符
> 重定向符
>> 重定向符
<>&<& 重定向符
| 命令管道符
^ 转义字符
& 组合命令
&& 组合命令
|| 组合命令
"" 字符串界定符

3. 字符串分割

一个字符串 My-String,并且你想要将其分割为 My 和 String。

@echo off
set my_string=My-String
for /f "tokens=1,2 delims=-" %%a in ("%my_string%") do (
   set first_part=%%a
   set second_part=%%b
)
echo First part: %first_part%
echo Second part: %second_part%

代码说明:

  1. 定义了一个名为 my_string 的变量,其值为 My-String
  2. 它使用 for /f 命令来分割这个字符串。tokens=1,2 指定了分割后的部分(tokens),delims=-指定了分隔符(delimiters)
  3. 分割后的部分被赋值给 %%a%%b,然后被存储在 first_part 和 second_part 变量中

上述例子中delims=-指定的是字符集作为分割符,比如:delims=+-$# 表示字符串分割时是按+ - & #分别进行分割。
有时候可能需要一个字符串来作为分割符,可以通过如下方式实现:

@echo off
set cmd_str=REG QUERY "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v "Common Desktop"
for /F "skip=2 tokens=*" %%S in ('%cmd_str%') do set str=%%S
::set "str=Common Desktop    REG_EXPAND_SZ    %%PUBLIC%%\Desktop"

:: 利用字符串替换功能,将    REG_EXPAND_SZ    替换为#,注意这里两端各有4个空格
set str=%str:    REG_EXPAND_SZ    =#%

:: 然后再利用for /f函数,delims=# 来分割字符串
for /F "tokens=1,2 delims=#" %%a in ("%str%") do (
	set value_name=%%a
	set value=%%b
)
echo value_name="%value_name%"
echo value="%value%"

代码说明:

  1. 利用字符串替换功能,将多个字符 REG_EXPAND_SZ 替换为单个字符#,注意这里两端各有4个空格;
  2. :然后再利用for /f方法,delims=#来分割字符串,从而达到曲线救国的目的

4. 字符串替换

语法:%var:old_str=new_str%
说明:使用str2来替换var变量中str1的一部分内容

@echo off
set VAR=hello
set VAR=%VAR:ell=ipp%
echo %VAR%

代码说明:

  1. 创建了一个变量VAR,它的值是“hello”。然后,使用“ell” 替换为 “ipp”。因此,脚本将输出 “hippo”。

5. 字符串切片

语法:目标字符串=%源字符串:~起始位置,截取长度%
说明:start_index 是子串的开始位置,length 是子串的长度。索引是从0开始的,所以0表示字符串的第一个字符。

@echo off
echo %%date%%=%date%
echo %%date:~0,4%%=%date:~0,4%
echo %%date:~5,2%%=%date:~5,2%
echo %%date:~8,2%%=%date:~8,2%
echo %%date:~-2%%=%date:~-2%
echo %%date:~0,-2%%=%date:~0,-2%
echo %%date:~-8,3%%=%date:~-8,3%
echo %%date:~-8,-3%%=%date:~-8,-3%
echo %%date:~4%%=%date:~4%
echo %%date:~,4%%=%date:~,4%
echo %%date:~4,%%=%date:~4,%

输出:

%date%=2023/07/11 周二
%date:~0,4%=2023
%date:~5,2%=07
%date:~8,2%=11
%date:~-2%=周二
%date:~0,-2%=2023/07/11
%date:~-8,3%=07/
%date:~-8,-3%=07/11
%date:~4%=/07/11 周二
%date:~,4%=2023
%date:~4,%=

代码说明:

  • 起始位置:
    1)起始值为 正,表示正着数,如:%date:~5,2%,表示从正着数第5个字符,往后截取2个字符(不含第5个字符);
    2)起始值为 负,表示倒着数,如:%date:~-8,3%,表示从倒着数第8个字符,往后截取3个字符(含第8个字符);
    3)起始值为0或空,表示从最左边开始,如:%date:~,4%%date:~0,4% 都表示从左边起始位置,截取2个字符;
    (起始位置如果省略,必需有个逗号占位,如果逗号省略则表示【截止长度为空】)
  • 截止长度(偏移量):
    1)截止长度为 正,表示截取长度,如:%date:~8,2%,表示从正着数第8个字符,往后截取2个字符(不含第8个字符);
    2)截止长度为 负,表示结束位置,如:%date:~-8,-3%,表示从倒着数第8个字符,往后截取,一直截取到倒数第3个字符的位置(含倒数第8个字符,不含倒数第3个字符);
    3)截止长度为 空,表示截取到结尾位置,如:%date:~4%,表示从正着数第4个字符,往后截取所有字符(不含第4个字符);
    (截止长度如果省略,不能有逗号占位,否则取值为空)

6. 字符串查找

使用echofindstr命令来判断是否包含一个字符串

@echo off
set VAR=hello
echo %VAR% | findstr /C:"ell" >nul
if errorlevel 1 (
    echo String not found
) else (
    echo String found
)

代码说明:文章来源地址https://www.toymoban.com/news/detail-651498.html

  1. 创建了一个变量 VAR,它的值是 “hello”。然后,使用 echo 和 findstr 命令来查找 “ell”。如果 “ell” 被找到,脚本将输出 “String found”,否则,输出 “String not found”

到了这里,关于Windows BAT批处理字符串相关操作(字符串定义、分割、拼接、替换、切片、查找)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Windows 批处理(bat) for循环语句使用教程

    注意事项: f or、in 和 do是for语句的 ,它们三个缺一不可; 在 in 之后,do 之前的 括号\\\"()\\\"不能省略 ,do 后可以有括号,且 括号内不能有注释 %%i 是for语句中 对形式变量的引用 ; for语句的形式变量I, 可以换成26个字母中的任意一 个,这些字母会 区分大小写 ; in和

    2024年02月04日
    浏览(34)
  • Windows 批处理(bat) if条件判断语句使用教程

    在bat脚本中,if条件判断语句共有6种比较操作符,分别为 操作符(不区分大小写) 描述 全称 equ 等于 equal neq 不等于 no equal lss 小于 less than leq 小于等于 leq less than or equal gtr 大于 greater than geq 大于等于 geq greater than or equal 其中,只有等于操作符可以使用符号 “==” 表示,其

    2024年02月03日
    浏览(35)
  • Jenkins通过SSH远程执行Windows批处理bat程序

    确保Windows上成功安装了OpenSSH,可参考:Windows系统下安装OpenSSH-CSDN博客 自行百度 系统管理系统配置,找到Publish over SSH,点击新增 点击 Test Configuration,提示Success,即成功。 关于Remote Directoy参数: 1.为空或不填,会工作在C:UsersAdministrator目录下,即Username对应的目录下 2.如

    2024年04月10日
    浏览(42)
  • 批处理批量替换文本内容,用bat代码全篇替换txt文本文件中指定字符信息

    批处理批量全篇替换txt文本文件中指定字符信息,修改三个参数后即可使用,话不多说直接上代码: @echo off setlocal EnableDelayedExpansion set path_str=\\\"C:UsersAdministratorDesktop1.txt\\\" set old_str=需要替换的原文本内容 set new_str=替换后的文本内容 set souerce_path=%path_str% for /f \\\"tokens=1* delims=

    2024年02月11日
    浏览(39)
  • 如何检测Windows服务停止后自动启动?自动运行.bat批处理文件?

    作者:西瓜程序猿 主页传送门:https://www.cnblogs.com/kimiliucn 想要确保你的Windows服务即使在崩溃后也能自动重启吗?这篇文章教你如何用一个小巧的批处理脚本来实现这一点。教你怎么设置定时检查,如果发现服务挂了,就立刻拉起来。跟着步骤做,让你的服务稳定运行不再是

    2024年02月05日
    浏览(51)
  • windows系统cmake生成c++动态库无lib文件解决方法 && bat文件批处理cmd命令

    作为cmake初学者,在windows系统下使用cmake生成c++动态库时出现了下图所示问题,是关于lib文件的。找了一圈,也没发现生成有lib文件。 在google上查,才发现windows系统下动态库生成lib文件,还需要添加以下命令: 生成动态库Demo(链接在此) 文件目录架构: ——源文件目录 —

    2023年04月25日
    浏览(27)
  • BAT 批处理脚本教程

    第一节 常用批处理内部命令简介 批处理定义:顾名思义,批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT或者CMD。这些命令统称批处理命令。 小知识:可以在键盘上按下Ctrl+C组合键来强行终止一个批处理的执行过程。 了解了大概意思后

    2024年02月02日
    浏览(35)
  • 【bat】批处理脚本大全

    目录 1.概述 2.变量 3.运算符 3.2.重定向运算符 3.3.多命名运算符 3.4.管道运算符 4.命令 4.1.基本命令 4.2.参数传递 4.3.查看脚本内容 4.4.注释 4.5.日期和时间 4.6.启动脚本 4.7.调用其他bat 4.8.任务管理 4.8.1.任务列表查看 4.8.2.任务终止 4.9.文件夹 4.10.关机 4.11.环境变量 4.12.目录 4.12.1

    2024年02月04日
    浏览(37)
  • .bat批处理打开多个程序

    作为程序员每天开机都需要打开idea、数据库、xshell等开发软件,操作相对繁琐,于是想起了批处理来帮忙一键启动。 在桌面新建一个txt文件,改后缀名为.bat,并加上下面的代码。 代码一(推荐) 代码执行流程 点击bat文件后先执行第一个语句进入到相应的目录。 执行第二个

    2024年02月11日
    浏览(27)
  • BAT批处理脚本自动执行指定路径下程序

    需求来源: 使用nacos+springboot的微服务架构,每次跑程序前要先启动nacos比较麻烦,然后就写了个简单的批处理,双击直接打开一个cmd执行nacos启动命令; 知识点: 1. start cmd /k    启动一个CMD且不关闭cmd 2.start cmd /c    启动一个CMD且关闭cmd 3.  start cmd /k  \\\"命令1 命令2 命令3\\\"

    2024年02月16日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包