本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《 阿里云开发者社区用户服务协议 》和 《 阿里云开发者社区知识产权保护指引 》。如果您发现本社区中有涉嫌抄袭的内容,填写 侵权投诉表单 进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

0. 补充知识

@echo off 命令关闭回显:

命令本身不会显示在 命令提示符 窗口中。使得批处理文件的输出更加清晰,只会看到命令的结果,而不是命令本身。


1. 字符串定义

使用set来定义字符串

@echo off
set string1=Hello
echo %string1%      # Hello

代码说明:

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


2. 字符串拼接

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

@echo off
set string1=Hello
set string2=World
set combined1=%string1% %string2%  # 不想在拼接的字符串中包含空格,去掉两个变量之间的空格。
set combined2=%string1%,%string2%  # 不想在拼接的字符串中包含空格,去掉两个变量之间的逗号。
set combined1=%string1%%string2%
echo %combined1%                   # Hello World
echo %combined2%                   # Hello,World
echo %combined3%                   # HelloWorld

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 变量中。

4. 字符串替换

使用方法:

语法:%var:str1=str2%

说明:使用str2来替换var变量中str1的一部分内容

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

代码说明:

创建了一个变量 VAR,它的值是 “hello”。然后,使用 set 命令的str1=str2 选项来将 “ell” 替换为 “ipp”。因此,脚本将输出 “hippo”。


5. 字符串切片

使用方法:

语法:%variable:~start_index,length%

说明:start_index 是子串的开始位置,length 是子串的长度。索引是从0开始的,所以0表示字符串的第一个字符。

@echo off
set my_string=Hello, World!
echo %my_string:~0,5%         # Hello
echo %my_string:~7%           # World!
echo %my_string:~-1%         # !

6. 字符串查找

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

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

代码说明:

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


文章知识点与官方知识档案匹配,可进一步学习相关知识