有两个条件的If循环

问题描述 投票:0回答:1

我有一个包含一系列 PDF 文件的文件夹。我想删除除两个之外的所有内容。 异常的文件名位于变量Exception1和Exception2中。

如果我想保留一个文件,我可以这样做:

for %%A in (*.pdf) do (
echo %%~A
if not "%%~A" == %exception% del "%%~A" 
)

但是如果我想保留两个文件,我就无法让它工作。

for %%f in (*.pdf) do (
if /i not "%%~nxf"=="%exception1%" (
    if /i not "%%~nxf"=="%exception2%" (
        echo Deleting "%%f"
        REM del "%%f"
    ) else (
        echo Keeping "%%f"
    )
) else (
    echo Keeping "%%f"
)
)

这会生成一条错误消息“此时其他情况是意外的”。

我也试过这个:

if /i not "%%~nxf"=="%exception1%" and not "%%~nxf"=="%exception2%"

也不起作用。

我怎样才能让它发挥作用?

batch-file
1个回答
0
投票

你尝试过这个吗?

@echo off
set "exception1=file1.pdf"
set "exception2=file2.pdf"

for %%f in (*.pdf) do (
    if /i not "%%~nxf"=="%exception1%" if /i not "%%~nxf"=="%exception2%" (
        echo Deleting "%%f"
        REM del "%%f"
    ) else (
        echo Keeping "%%f"
    )
)
© www.soinside.com 2019 - 2024. All rights reserved.