visual-studio - 我想删除所有 bin 和 obj 文件夹以强制所有项目重建所有内容

标签 visual-studio visual-studio-2008 batch-file cmd

我处理多个项目,并且我想递归删除名为“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/

相关文章:

c# - 如何将 WordOpenXML 属性转换为 System.IO.Packaging.Package?

c++ - 将 initializer_list 插入 vector<string> 时 VS2013 SP5 崩溃

vb.net - 您如何获得单击以打开 ContextMenuStrip 的控件?

c++ - 混合 C 和 C++ 代码时出现链接错误

file - FOR/R - 使用 set/a [变量] = [变量] + %%~zA

batch-file - 为什么FOR/F为其余 token 中的重复数字设置空值?

VS Code 中的 HTML 标记验证器 - 警告重复属性

visual-studio - 发布到 Azure 不会更新 App_Data 中的文件

visual-studio-2008 - 如何在 Visual Studio 2008 中获取未绑定(bind)的键盘快捷键列表?

windows - 如何防止 dir 匹配短文件名?