我正在编写一个批处理文件,我需要列出除“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 (
答案 0 :(得分: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
以使搜索大小写不敏感。
答案 1 :(得分:3)
最简单的方法可能是
for /r /d %%D in ("*") do (
if not "%%~nxD"=="pdf" (
echo %%D
)
)