Quero excluir todos os arquivos PDF de um diretório, exceto dois com nomes de arquivo definidos como variáveis exception1
e exception2
.
chcp 65001
setlocal ENABLEDELAYEDEXPANSION
set pathname=%~p1
set letter=%~d1
pushd %letter%%pathname%
chcp
set exception1="218-0553.2.pdf"
set exception2="218-0553.2 test.pdf"
pause
dir *.pdf
for %%f in (*.pdf) do (
if /i not "%%~nxf"=="%exception1%" (
if /i not "%%~nxf"=="%exception2%" (
echo Deleting "%%f"
del "%%f"
) else (
echo Keeping "%%f"
)
) else (
echo Keeping "%%f"
)
)
popd
endlocal
Isso gera uma mensagem de erro:
else was unexpected at this time
Eu também tentei isso, mas também não funciona:
if /i not "%%~nxf"=="%exception1%" and not "%%~nxf"=="%exception2%"
Há algo que estou esquecendo?