这取决于您喜欢使用的外壳。
如果您在 Windows 上使用 cmd shell,那么以下应该可以工作:
FOR /F "tokens=*" %%G IN ('DIR /B /AD /S bin') DO RMDIR /S /Q "%%G"
FOR /F "tokens=*" %%G IN ('DIR /B /AD /S obj') DO RMDIR /S /Q "%%G"
如果您使用的是 bash 或 zsh 类型的 shell(例如 Windows 或大多数 Linux / OS X shell 上的 git bash 或 babun),那么这是一种更好、更简洁的方式来做您想做的事情:
find . -iname "bin" | xargs rm -rf
find . -iname "obj" | xargs rm -rf
这可以用 OR 简化为一行:
find . -iname "bin" -o -iname "obj" | xargs rm -rf
请注意,如果您的文件名目录包含空格或引号,find 将按原样发送这些条目,xargs 可能会拆分为多个条目。如果你的 shell 支持它们,-print0 和 -0 将解决这个缺点,所以上面的例子变成:
find . -iname "bin" -print0 | xargs -0 rm -rf
find . -iname "obj" -print0 | xargs -0 rm -rf
和:
find . -iname "bin" -o -iname "obj" -print0 | xargs -0 rm -rf
如果你使用的是 Powershell,那么你可以使用这个:
Get-ChildItem .\ -include bin,obj -Recurse | foreach ($_) { remove-item $_.fullname -Force -Recurse }
如 Robert H's answer below 中所见 - 如果您选择对任何内容进行投票,请确保您将 powershell 答案归功于他而不是我 :)
当然最好先在安全的地方运行任何你选择的命令来测试它!