为了账号安全,请及时绑定邮箱和手机立即绑定

批处理文件:查找子字符串是否在字符串中(而不是在文件中)

批处理文件:查找子字符串是否在字符串中(而不是在文件中)

天涯尽头无女友 2019-10-16 09:09:27
批处理文件:查找子字符串是否在字符串中(而不是在文件中)在批处理文件中,我有一个字符串。abcdefg..我想检查一下bcd在绳子里。不幸的是,我找到的所有解决方案档案对于子字符串,而不是用于子字符串的字符串。有什么简单的解决办法吗?
查看完整描述

3 回答

?
ibeautiful

TA贡献1993条经验 获得超5个赞

是的,您可以使用替换并对照原始字符串进行检查:

if not x%str1:bcd=%==x%str1% echo It contains bcd

这个%str1:bcd=%位将取代bcd在……里面str1使用空字符串,使其与原始字符串不同。

如果原始文件不包含bcd字符串中,修改后的版本将是相同的。

使用以下脚本进行测试将显示它的作用:

@setlocal enableextensions enabledelayedexpansion
@echo off
set str1=%1
if not x%str1:bcd=%==x%str1% echo It contains bcd
endlocal

以及各种运行的结果:

c:\testarea> testprog hello

c:\testarea> testprog abcdef
It contains bcd

c:\testarea> testprog bcd
It contains bcd

几个注意事项:

  • 这个

    if

    语句是该解决方案的核心,其他一切都是支持性的。
  • 这个

    x

    前面的两边相等是为了确保字符串

    bcd

    工作正常。它还可以防止某些“不适当”的起始字符。



查看完整回答
反对 回复 2019-10-17
?
皈依舞

TA贡献1851条经验 获得超3个赞

我通常会做这样的事情:

Echo.%1 | findstr /C:"%2">nul && (
    REM TRUE
) || (
    REM FALSE
)

例子:

Echo.Hello world | findstr /C:"world">nul && (
    Echo.TRUE
) || (
    Echo.FALSE
)

Echo.Hello world | findstr /C:"World">nul && (Echo.TRUE) || (Echo.FALSE)

产出:

TRUE
FALSE

我不知道这是不是最好的方法。



查看完整回答
反对 回复 2019-10-17
  • 3 回答
  • 0 关注
  • 571 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信