检查输入是否为特定字符串

时间:2016-12-16 18:42:51

标签: batch-file

我有一个我正在处理的脚本,我需要一些帮助。在这个脚本中,我想查看输入变量%1%以查看它是否包含特定字符串。如果是的话,我想做一件事。如果没有,我希望它做其他事情。输入变量是一个UNC路径,我想检查它是否包含字符串\\server\share,我不希望它区分大小写。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

输入变量为%1%~1(使用波浪线删除周围的引号)。

有几种方法可以检查。您可以使用变量子串替换:

@echo off & setlocal

set "input=%~1"

if not "%input%"=="%input:specific string=%" (
    rem // input contained the string
) else (
    rem // input did not contain the string
)

有效的方式是%input:specific string=%替换specific string内所有%input%的实例。因此,如果替换前的字符串在替换后不等于字符串,则该变量包含您匹配的内容。 See this page有关子字符串替换的完整详细信息。

或者您可以使用findfindstr

@echo off & setlocal

echo(%1 | find /i "some string" && (
    rem // input contained the string
) || (
    rem // input did not contain the string
)

子串替换方法效率更高。