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

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

在批处理文件中,我有一个字符串。abcdefg..我想检查一下bcd在绳子里。

不幸的是,我找到的所有解决方案档案对于子字符串,而不是用于子字符串的字符串。

有什么简单的解决办法吗?


UYOU
浏览 2366回答 3
3回答

慕田峪7331174

是的,您可以使用替换并对照原始字符串进行检查: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工作正常。它还可以防止某些“不适当”的起始字符。

紫衣仙女

我通常会做这样的事情: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我不知道这是不是最好的方法。
打开App,查看更多内容
随时随地看视频慕课网APP