2

有人可以告诉我如何删除解决方案中每个项目的 Debug 和 Release 文件夹吗?

我在这篇文章中找到了这段代码,但我不知道我应该把它放在哪里!

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"

原因是,我必须手动关闭 Visual Studio,删除所有调试和发布文件夹,重新打开解决方案并重建......只有这样我的应用程序才能编译并正常工作!

4

3 回答 3

4

您提到的“我想删除所有 bin 和 obj 文件夹以强制所有项目重新构建所有内容”线程中有许多很好的替代解决方案,但是如果您想使用此命令行,则需要针对发布和调试进行调整:

DIR /B /AD /S bin

这表示输出名为 bin (或第二次调用中的 obj )的当前目录 (/S) 中及其下的所有目录 (/AD)。您可能希望为 Debug 和 Release 而不是 bin 和 obj 执行此操作。

FOR /F "tokens=*" %%G IN ('DIR /B /AD /S Release') DO RMDIR /S /Q "%%G"
FOR /F "tokens=*" %%G IN ('DIR /B /AD /S Debug') DO RMDIR /S /Q "%%G"

正如 Stuart 所说,包含这两个命令并从项目根目录运行的批处理文件(或命令行调用)将删除所有名为 Release 或 Debug 的目录及其内容。它不会很聪明并且知道这些是为项目配置的发布和调试目录。

使用了解项目配置文件并根据它们采取行动的工具会更安全。同样,在您链接的其他线程中也有一些想法。

于 2012-08-23T22:42:18.443 回答
2

只是想添加到 jla 的答案(因为我不知道如何评论,或者我还不能评论):

您甚至可以将调试和发布放在一个命令中(甚至 .svn 文件夹)。例如:

FOR /F "tokens=*" %G IN ('DIR /B /AD /S Release Debug .svn') DO RMDIR /S /Q "%G"

在这里,我将双 %% 替换为单 %,因为它现在是一个命令,您可以从命令行运行它。

希望这可以帮助。

于 2013-01-18T20:39:49.630 回答
0

我为此使用的批处理文件还清理了包和所有不必要的混乱,以便正确备份文件夹。我在批处理文件中使用此代码并从解决方案的根目录运行批处理文件(在我的情况下是所有解决方案所在的根目录)

for /d /r . %%d in (bin,obj,csx,rcf,_ReSharper.*) do @if exist "%%d" rd /s/q "%%d"
for /d /r . %%d in (packages) do @if exist "%%d" (
    cd %%d
    for /d /r . %%e in (*) do @if exist "%%e" rd /s/q "%%e"
)
于 2014-05-01T07:14:23.480 回答