Windows 如果“文件名”包含“变量”do命令

Windows 如果“文件名”包含“变量”do命令,windows,batch-file,cmd,Windows,Batch File,Cmd,我正在使用windows命令行编写我的第一个脚本。我试图弄清楚,如果文件名包含指定的变量,如果没有,如何运行命令,然后转到脚本的下一部分。文件名不必完全匹配,只需按指定顺序包含变量即可。我试了好几个小时各种命令,但都没用。这只是我编写脚本的第二天,所以我对很多方面都不是很了解。我在找一个命令来做这个 如果[Craig]圣诞节-2009[720p].mkv包含[720p]do命令 我知道contains实际上不是if命令的一部分,但这是一个我认为最容易理解的示例 有人能帮我吗 echo "then

我正在使用windows命令行编写我的第一个脚本。我试图弄清楚,如果文件名包含指定的变量,如果没有,如何运行命令,然后转到脚本的下一部分。文件名不必完全匹配,只需按指定顺序包含变量即可。我试了好几个小时各种命令,但都没用。这只是我编写脚本的第二天,所以我对很多方面都不是很了解。我在找一个命令来做这个

如果[Craig]圣诞节-2009[720p].mkv包含[720p]do命令

我知道contains实际上不是if命令的一部分,但这是一个我认为最容易理解的示例

有人能帮我吗

echo "thenameofyourfilewhichmaybeinavariable"|find /i "the substring" >nul
if errorlevel 1 (echo missing) else (echo found)
这将是经典的方式,但还有其他方式

/i表示不区分大小写


请参阅查找/?如果/?从文档提示中。

我对批处理不太熟悉,但粗略搜索就会发现该命令。它似乎能够进行基本的模式匹配

如果您的系统由于任何原因没有findstr,您可以使用混乱的平等性检查。根据这一点改编的示例:

@setlocal enableextensions enabledelayedexpansion
set str1="[720p]"
if not x%str1:bcd=%==x%str1% echo 'It contains [720p]'
endlocal