我处理多个项目,并且我想递归删除名为“bin”或“obj”的所有文件夹,这样我确信所有项目都会重建所有内容(有时这是强制 Visual Studio 忘记的唯一方法)所有关于以前的版本)。
有没有一种快速方法可以完成此任务(例如使用 .bat 文件)而无需编写 .NET 程序?
最佳答案
这取决于您喜欢使用的 shell。
如果您在 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 上的 git bash 或 babun 或大多数 Linux/OS X shell),那么这是一种更好、更简洁的方式来完成您想要的操作:
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 答案归功于他而不是我:)
首先在安全的地方运行您选择的任何命令来测试它当然是明智的!
关于visual-studio - 我想删除所有 bin 和 obj 文件夹以强制所有项目重建所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/755382/