3

我正在编写一个批处理文件,我需要在其中列出除“pdf”之外的所有目录。

这是我目前拥有的一个简单示例,返回所有目录:

for /r /d %%D in ("*") do (
        echo %%D
    )

是否有相当于:

for /r /d %%D not in ("pdf") do (
        echo %%D
    )

当我尝试得到以下输出时:

"not was unexpected at this time."  
C:\txt-in\for /r /d %D not in ("pdf") do (
4

2 回答 2

4

最简单的方法可能是

for /r /d %%D in ("*") do (
    if not "%%~nxD"=="pdf" (
    echo %%D
    )
)
于 2013-01-10T16:16:19.563 回答
4

你已经接近你的第一个片段了。只需在循环中添加一条if语句或更改循环以使用dir带有find.

显示文件夹名称不是“pdf”

for /r /d %%D in (*) do (
    if /i not "%%~nxD"=="pdf" (
        echo %%D
    )
)

或显示不包含“pdf”的文件夹名称

for /f "delims=" %%D in ('dir /a:d /b ^| find /v /i "pdf"') do (
    echo %%D
)

/i匹配不考虑字母大小写。删除/i以使搜索不区分大小写。

于 2013-01-10T16:23:29.907 回答