批处理脚本列出文件夹但排除特定文件夹

时间:2013-03-22 10:53:48

标签: list batch-file directory dir

我希望此脚本列出文件夹名称中包含“已删除”的所有文件夹,但如果它们位于名为“已完成”的文件夹中则不会。

例如:如果该文件夹在C:\temp中,并且该文件夹位于C:\temp\random_folder_name中,则列出该文件夹,但如果该文件夹位于C:\temp\done

dir /s "C:\temp" | findstr "\deleted"

简短的故事,排除所有名为“完成”的文件夹及其内容。

3 个答案:

答案 0 :(得分:8)

你快到了。

Findstr / v返回所有不包含字符串的行

目录/广告只会显示目录(Atrribut =目录)

dir /s /ad "C:\temp" | findstr "\deleted" | findstr /v "\done"

答案 1 :(得分:1)

dir /s "C:\temp" | findstr "\deleted"|findstr /i /v "\temp\done\"

应符合法案

  • 或删除\temp部分,如果您想省略任何已经“完成”作为路径目录的名称

答案 2 :(得分:0)

在很多情况下:

dir /b /s /aa <path>

会做的伎俩。 / b表示较小的输出,/ s表示递归(子目录),/ aa表示只准备存档的文件。这通常是正常创建文件的情况 - 默认为开启!