这个想法是我想检查一个子字符串是否在一个字符串内与批处理脚本。
例如,我想检查pass
是否在%rev%
的内部,如果没有相关的for循环,我可以这样做:
if /I "%rev:pass=%" neq "%rev%" (
echo String has pass
) else (
echo it doesnt has pass
)
但是当"%rev%"
被%%g
替换时,我不知道如何在for循环中使用这个"%rev:pass=%"
我的代码在这里:
FOR /F "tokens=*" %%g IN (test.txt) do (
if /I "%%g:pass=" neq "%%g" (
echo String has pass
) else (
echo it doesnt has pass
)
)
我需要检查这个test.txt中的每个字符串是否有子字符串pass
。
我试图改变%%g
的形式,但仍然无法实现。主要思想是检查文件中的每个字符串,如果字符串有pass
作为子字符串
2条答案
按热度按时间scyqe7ek1#
你不能直接操作
for
循环变量,所以你需要先将它们存储在常规变量中。然而,由于你通常不能在集合中设置和使用变量,你需要启用延迟扩展。这可以通过在脚本顶部添加setlocal enabledelayedexpansion
来实现。2lpgd9682#
试试这个。如果大小写是UPPER或Lower,它将匹配。它通过字符串替换和前后比较来工作。还提供了一个运行的命中计数。漂亮。
哦,另外,另一个答案是错的。两个值永远不会相等。试试看。