如何在shell脚本中删除包含一些特殊文件夹的空文件夹?

时间:2015-02-09 10:13:40

标签: shell

例如: 我有文件夹keep1,子文件夹keep2和文件夹keep2的子文件夹:keep3:

Keep1(not empty)
    Keep2(not empty)
        Keep3(empty)

目前我正在使用:

for /f "delims=" %%i in ('dir /s /b /ad ^| sort /r') do rd "%%i"

删除所有空文件夹,但我不想删除某些文件夹。在上面的示例中,我想保留文件夹Keep3为空。

1 个答案:

答案 0 :(得分:0)

你能否使用find?

for /f "delims=" %%i in ('dir /s /b /ad ^| sort /r ^| find /V "Keep3"') do rd "%%i"

修改 我发现你可能有多个地方需要跳过,所以你可以使用http://www.computerhope.com/findstr.htm findstr

即如果你必须忽略Keep3和Keep4,那么

for /f "delims=" %%i in ('dir /s /b /ad ^| sort /r ^| findstr /V "Keep3 Keep4"') do rd "%%i"

它也是(基本的)正则表达式功能