如果“filename”包含“variable”do命令

时间:2014-12-24 03:53:32

标签: windows batch-file cmd

我正在使用windows命令行编写我的第一个脚本。我试图弄清楚如果文件名包含指定的变量,如何运行命令,如果它没有,那么继续前进到脚本的下一部分。文件名不必是完全匹配,它只需要按指定的顺序包含变量。我几个小时都在尝试各种命令,但无济于事。这只是我编写脚本的第二天,所以我不是很了解。我正在寻找一个可以做到这一点的命令......

  

如果“ [Craig]圣诞节 - 2009 [720p] .mkv ”包含“ [720p] “执行 命令

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

任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

echo "thenameofyourfilewhichmaybeinavariable"|find /i "the substring" >nul
if errorlevel 1 (echo missing) else (echo found)

将是经典的方式 - 但还有其他方式。

/i表示“不区分大小写”)

从文档提示中查看find /?if /?

答案 1 :(得分:0)

我不熟悉批处理,但粗略搜索会显示findstr命令。它似乎能够进行基本的模式匹配。

如果您的系统由于某种原因没有findstr,您可以使用凌乱的相等检查。示例改编自此answer

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