我想删除所有的bin和obj文件夹以强制所有项目重新构建。
我想删除所有的bin和obj文件夹以强制所有项目重新构建。
我在处理多个项目,我想递归地删除所有名称为“bin”或“obj”的文件夹,这样我就可以确信所有项目都会重建一切(有时这是唯一的强制Visual Studio忘记以前的所有构建的方法)。
有没有快速的方法(例如使用.bat文件)可以实现这一点,而不必编写.NET程序?
admin 更改状态以发布 2023年5月24日
这取决于您想要使用的shell。\n\n如果您使用的是Windows上的cmd shell,则以下方法应该可行:\n
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"
\n\n如果您使用的是bash或zsh类型的shell(例如Windows上的git bash或babun以及大多数Linux/OS X shell),那么以下方法是一种更好的、更简洁的实现方式:\n
find . -iname "bin" | xargs rm -rf find . -iname "obj" | xargs rm -rf
\n并且可以使用OR将其简化为一行:\n\n
find . -iname "bin" -o -iname "obj" | xargs rm -rf
\n\n请注意,如果您的目录或文件名中包含空格或引号,则find将按原样读取这些条目,而xargs可能会将其拆分为多个条目。如果您的shell支持它们,则`-print0`和`-0`会解决这个缺陷,因此上述示例变为以下内容:\n
find . -iname "bin" -print0 | xargs -0 rm -rf find . -iname "obj" -print0 | xargs -0 rm -rf
\n和:\n
find . -iname "bin" -o -iname "obj" -print0 | xargs -0 rm -rf
\n\n如果您使用的是Powershell,则可以使用以下命令(如下所示):\n
Get-ChildItem .\ -include bin,obj -Recurse | foreach ($_) { remove-item $_.fullname -Force -Recurse }
\n正如Robert H的回答中所述-如果您选择投票,则请确保为powershell回答给予他信用。\n\n当然,最好先在安全的地方运行您选择的任何命令以进行测试!