迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 操作系统 >

批处理文件中的字符串比较

作者:迹忆客 最近更新:2023/05/18 浏览次数:

字符串是字符的有序集合。

可以使用批处理文件中的条件命令比较字符串,即 if、if-else 和 for 命令。 字符串可能包含空格和特殊字符,这会在正常执行时导致批处理文件出错。

此外,如果字符串包含双引号,则可能会导致错误。

本教程将介绍使用 if、if-else 和 for 命令比较批处理文件中字符串的不同方法。


在批处理文件中使用 if 和 if-else 命令进行字符串比较

if 命令在设定值和预期值之间执行条件运算和逻辑比较。 它可以检查文件是否存在、比较字符串,甚至检查错误。

使用 if 命令进行字符串比较

让我们举个例子来检查字符串是否相等。 如果它们相等,它将使用 echo 命令显示输出。

@echo off
SetLocal

set string1="Hello World"
set string2="Hello World"

if %string1% == %string2% (echo "Both the strings are equal")
cmd /k

testfile if command

输出:

output if command

使用 if-else 命令进行字符串比较

@echo off
SetLocal

set string1="Hello World"
set string2="HELLO WORLD"
set string3="Hello World"


if %string1% == %string2% (echo string 1 and string 2 are equal echo the string is %string2%) else if %string1% == %string3% (echo string1 and string 3 are equal
echo the string is %string3%) else (echo all strings are different)
cmd /k

testfile if else

输出:

output if else command

注意:

  1. 不要在括号之间留空格。
  2. 当字符串或变量包含空格或特殊字符时,将它们放在双引号中。

使用 if 命令,您可以使用 /I 进行不区分大小写的字符串比较,如果条件为假,则不运行该命令。

您还可以使用比较运算符,例如 EQU(等于)、NEQ(不等于)、LSS(小于)、LEQ(小于或等于)、GTR(大于或等于)、GEQ(大于或等于 ) 用于比较值。 但是,这些运算符不能用于比较字符串。

使用 if-else 命令比较包含双引号的字符串

如果字符串或变量包含双引号,请使用 SetLocal 命令启用延迟扩展。 使用 ! 代替 ”。

相同的代码如下例所示:

@echo off
SetLocal EnableDelayedExpansion

set string1="Hello "World""
set string2=""HELLO WORLD""
set string3="Hello World"

if !string1! == !string2! (echo "string 1 and string 2 are equal") else if !string1! == !string3! (echo "string1 and string 3 are equal") else (echo "All strings are different")
cmd /k

testfile if else string with double quotes

输出:

output if else strings with double quotes


在批处理文件中使用 for 循环进行字符串比较

for 命令用于为一组文件中的每个文件运行指定的命令。

显示了批处理文件中 for 命令的语法。

for {%%|%}<variable> in (<set>) do <command> [<commandlineoptions>]

让我们举一个例子,我们必须比较字符串以显示 Windows 操作系统版本:

@echo off
SetLocal EnableDelayedExpansion
for /f "usebackq tokens=1 delims=" %%I in ("C:\Users\Aastha Gas Harda\Desktop\testfile1.txt") do (
set string=%%I
echo %%I
if "%%~I" == "HelloWorld" (echo "match found") else (echo "match not found")
)
PAUSE

testfile for loop

输出:

output for loop

在上面的示例中,使用了一个 for 循环来比较字符串值。 如果字符串值等于 HelloWorld,它会将输出显示为找到匹配项。

delims 指定分隔符集,tokens 指定每行中的哪些标记将传递给 for 循环。 每当我们在 for 循环中使用引号时,都必须使用 usebackq。

因此,我们已经讨论了在批处理文件中比较字符串的不同方法。 除了比较字符串外,这些条件命令还可用于从文本文件或日志文件中查找指定的值或文本。

上一篇:Batch 检查空变量

下一篇:没有了

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Batch 检查空变量

发布时间:2023/05/19 浏览次数:150 分类:操作系统

本文说明了我们如何测试变量是否已设置。 我们可以使用 if 语句来检查变量是否已经定义。批量检查变量是否为空

在 Bash 中递归地循环遍历目录

发布时间:2023/05/18 浏览次数:198 分类:操作系统

本篇文章介绍了如何在 Bash 中递归循环遍历目录。在 Bash 中递归地循环遍历目录。在处理不同的目录时,通常需要遍历目录。 我们可以在包括 Bash 在内的所有 Linux 终端中使用类似的命令来递归

在 Bash 中查找具有扩展名的所有文件

发布时间:2023/05/18 浏览次数:50 分类:操作系统

本篇文章介绍如何在 Bash 中查找具有扩展名的所有文件。在 Bash 中查找具有扩展名的所有文件。在 Bash 中查找具有特定扩展名的文件是一项简单的操作。

在 Bash 中更改用户

发布时间:2023/05/18 浏览次数:69 分类:操作系统

本篇文章将介绍如何在 Bash 中更改用户。Bash 更改用户 在 Bash 中有多种更改用户的方法。 我们可以使用su命令或者sudo命令直接更改用户或者使用方法切换到root用户。

在 Bash 中运行后台进程

发布时间:2023/05/18 浏览次数:191 分类:操作系统

本篇文章将讨论如何在 Bash 中创建在后台运行的命令。 此外,我们将通过使用必要的示例和解释来讨论该主题,以使该主题更容易理解。

Bash 等待后台进程

发布时间:2023/05/18 浏览次数:121 分类:操作系统

本篇文章介绍如何在 Bash 中等待后台进程。Bash 等待后台进程。Bash 中的 wait 命令可用于等待所有后台进程完成。

Bash 中检查变量是否包含值

发布时间:2023/05/18 浏览次数:173 分类:操作系统

有时,我们需要检查变量是否包含值。 这在处理包含要运行的用户输入的项目时很重要。在 Bash 脚本中,我们可以通过多种方式来检查变量是否包含值。 本文将展示我们如何检查变量的值。

Bash 脚本中的变量插值

发布时间:2023/05/18 浏览次数:79 分类:操作系统

本文是关于在 Bash 脚本中使用变量以及如何在 Bash 脚本中插入这些变量。Bash 脚本中的变量。每种编程语言都有具有特定数据类型的变量。

在 Bash 中修改函数内的全局变量

发布时间:2023/05/18 浏览次数:181 分类:操作系统

在本文中,我们将学习如何在 Bash 的函数内修改全局变量。在 Bash 中修改函数内的全局变量 如果你在脚本中声明你的变量,Bash 中的每个变量默认都是全局的,这意味着它可以被任何函数、脚本

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便