String 在批处理文件中,如何验证文件名的一部分与给定字符串匹配?
我有一个目录,其中充满了如下所示的文件:String 在批处理文件中,如何验证文件名的一部分与给定字符串匹配?,string,batch-file,command-line,cmd,String,Batch File,Command Line,Cmd,我有一个目录,其中充满了如下所示的文件: Codian1_OCT_14_2014_14_52_ccc145b1_WMV.asf Codian1_OCT_14_2014_14_52_ccc145b1_ASF.asf Codian1_OCT_13_2014_12_52_ccc145b1_WMV.asf Codian1_OCT_13_2014_12_52_ccc145b1_ASF.asf 我试图测试文件是否以WMV.asf或asf.asf结尾。由于某些原因,以下代码不起作用: FOR %%i IN
Codian1_OCT_14_2014_14_52_ccc145b1_WMV.asf
Codian1_OCT_14_2014_14_52_ccc145b1_ASF.asf
Codian1_OCT_13_2014_12_52_ccc145b1_WMV.asf
Codian1_OCT_13_2014_12_52_ccc145b1_ASF.asf
我试图测试文件是否以WMV.asf或asf.asf结尾。由于某些原因,以下代码不起作用:
FOR %%i IN (*) DO (IF %%~i=="*WMV.asf" (echo %%~i IS wmv.asf) ELSE (echo %%~i isn't wmv.asf))
你知道怎么做吗?一种方法:
@echo off
setlocal enabledelayedexpansion
FOR %%i IN (*) DO (
set $File=%%i
if /i !$File:~-7!==WMV.asf echo !$File! -^> WMV
if /i !$File:~-7!==ASF.asf echo !$File! -^> ASF)
所有比较都不区分大小写,因为Windows不关心文件路径中的大小写 选择1
@echo off
setlocal enableDelayedExpansion
for %%i in (*) do (
set "file=%%i"
if /i "!file:~-7!"=="wmv.asf" (echo %%i IS wmv.asf) else (echo %%i isn't wmv.asdf)
)
选择2
for %%i in (*) do echo %%i|findstr /ile "wmv.asf" >nul && (echo %%i IS wmv.asf) || (echo %%i isn't wmv.asf)