我需要找到所有* .avi文件(即使在子文件夹中)。但我想要排除具有特定部分名称(* demux.avi)的文件。像这样:
FOR /R %%g IN (*.avi) DO (
if "%%g"=="*demux.avi" ( - THIS PART IS WRONG
echo "%%g" excluded
) else (
echo "%%g"
)
)
我期待结果:
file1.avi
file1 demux.avi排除了 file2.avi
**
答案 0 :(得分:1)
试试这个:
FOR /F %%g IN ('dir /b /s "*.avi"^|find /i /v "demux"') DO ( whatever )
我们基本上是在查找此文件夹和子文件夹中的所有avi文件并将它们通过管道进行查找。 使用finds / V开关查找所有不包含“demux”的行并在其上运行命令。
答案 1 :(得分:0)
像这样:
@echo off&cls
for /f "delims=" %%a in ('dir /b/a-d *.avi') do (echo %%a | find "demux" && echo %%a [Excluded] || echo %%a [OK])
代替echo %% a [Excluded]或echo %% a [OK],你可以做你想做的事(DEL, REN,MOVE,...
)
编辑:
在使用/S
DIR
选项时,只需拥有该文件的名称
@echo off&cls
for /f "delims=" %%a in ('dir /s/b/a-d *.avi') do (echo %%~na | find "demux" && echo %%~na [Excluded] || echo %%~na [OK])