如果变量中包含特定字符串,如何过滤变量

时间:2020-02-20 20:48:27

标签: sorting batch-file findstr

现在,我正试图浏览我的YouTube观看记录,以查找几年前观看的视频,但是我不知道它的标题。我将所有历史记录都保存到一个文本文件中,因此能够加载该文本文件并为每个视频(名称,创建者以及观看的日期和时间)设置“数组”。现在,我有一个程序将接受用户输入的字符串

set /p checkString=

然后在所有标题变量(可能包括ANY字符,特殊字符,空格甚至unicode)上运行它 标题变量之一将完全如下: “观看了2020年1月工作日?跳过所有的世界末日抢劫任务Setup轻松故障| PS4 XBOX1 GTA在线”

echo !currentVideoTitle! | findstr /i "%checkString%" >nul & if errorlevel 1 (
    echo Title contains match
) else (
    echo Title doesn't contain match
)

通过使用该命令,它只会返回错误级别1和 我知道通过某种程度的操纵,我可能会达到预期的结果,例如

if !currentVideoTitle:~%loopCount%,%checkStringLength%!==!checkString!

但是当我整理大约15,000个视频时,这会大大降低速度

1 个答案:

答案 0 :(得分:0)

我最终使用:

if not "x!var:%in%=!"=="x!var!" (
echo Contains match
) else (
echo Contains match
)

比较之前的第一位将删除字符串!var!中任何%in%的实例。 “ x”被添加到任一侧,以确保不会与空变量等混淆。这是用户paxdiablo发布的另一个问题的答案。我想他/她对它的描述要好得多,如果您想看一下原始内容,请点击以下链接: "Original" post, and answer