sorting - 如果变量包含批处理中的特定字符串,如何过滤变量
问题描述
现在我正试图通过我的 YouTube 观看历史找到我多年前观看的视频,但我不知道它的标题。我将所有历史记录都保存到一个文本文件中,因此我可以加载文本文件并为每个视频(名称、创建者以及观看日期和时间)设置“数组”。现在我有一个程序将接受用户输入字符串
set /p checkString=
然后在所有标题变量(可能包括任何字符、特殊字符、空格甚至 unicode)上运行它,其中一个标题变量将完全如下:“Watched WORKING JAN 2020 Solo Skip ALL Doomsday Heist Setup Missions Easy Glitch | PS4 XBOX1 GTA Online"
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!
但是当我对大约 15k 视频进行分类时,这会慢很多
解决方案
我最终使用:
if not "x!var:%in%=!"=="x!var!" (
echo Contains match
) else (
echo Contains match
)
比较之前的第一位删除字符串 !var! 中任何 %in% 的任何实例。“x”被添加到任一侧,以确保不会与空变量等混淆。这是用户paxdiablo对另一个问题的回答。我认为如果您想查看原始链接,他/她会更好地描述它: “原始”帖子,然后回答
推荐阅读
- angular - Ionic 4 - 如何将 id 参数传递到另一个页面并从外部 api 检索 id 的数据
- c++ - 在 ubuntu16.04 上生成运行时犰狳库时出错
- ios - 饼图(iOS 图表)未显示在自定义 tableviewcell 中
- mongodb - 如何对整个文档中的字段进行求和以及搜索?
- python - 加载预训练模型时面临的问题
- listener - 事件监听器教程中的错误代码
- c# - 在 WPF 中并通过使用 Prism,如何使用 MouseButtonEventArgs 作为窗口命令的参数?
- boomla - Boomla 中的链接类型列表?
- android - 带有 touchListener 和 clickListener 的按钮处于突出显示状态
- node.js - Heroku - Node.js - React App - 构建失败 - “找不到文件”