在批处理文件中,我有一个字符串abcdefg
。我想检查一下是否bcd
是在字符串中。
不幸的是,我找到的所有解决方案似乎都在搜索file对于子字符串,而不是对于子字符串的字符串。
有一个简单的解决方案吗?
是的,您可以使用替换并检查原始字符串:
if not x%str1:bcd=%==x%str1% echo It contains bcd
The %str1:bcd=%
位将取代一个bcd
in 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
一些注意事项:
- The
if
声明是这个解决方案的核心,其他一切都是支持内容。
- The
x
两边之前的相等是为了保证字符串bcd
工作正常。它还可以防止某些“不正确”的起始字符。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)