2008-12-05 78 views
0

我正在使用MSBuild編寫部署腳本。我想清理我之前複製了所有的新文件,網頁目錄我目前的「清潔」的目標看起來是這樣的:如何從Windows的命令提示符中刪除文件夾的內容?

<Target Name="Clean"> 
    <Exec Command="del %(DeploymentSet.LocalWebRoot)\* /Q /F /S" IgnoreExitCode="true" /> 
    </Target> 

這需要一個相當長的時間,因爲每個文件是從各子文件夾單獨刪除。

有沒有一種很好的方法可以刪除給定文件夾中的所有內容而不刪除該文件夾?我想維護我的權限和vdir設置信息。

+0

我要說德爾*,但你已經這樣做。 .. – Powerlord 2008-12-05 21:28:17

回答

1

你可以分別爲rmdir /s /q各個子目錄,然後del %(DeploymentSet.LocalWebRoot)\* /Q /F你的乾淨目標。例如:

<Target Name="Clean"> 
    <Exec Command="rmdir %(DeploymentSet.LocalWebRoot)\subdir1 /Q /S" IgnoreExitCode="true" /> 
    <Exec Command="rmdir %(DeploymentSet.LocalWebRoot)\subdir2 /Q /S" IgnoreExitCode="true" /> 
    ... 
    <Exec Command="rmdir %(DeploymentSet.LocalWebRoot)\subdirN /Q /S" IgnoreExitCode="true" /> 
    <Exec Command="del %(DeploymentSet.LocalWebRoot)\* /Q /F" IgnoreExitCode="true" /> 
    </Target> 
+0

試圖保持它的通用性,以便乾淨的可以適用於任何給定的DeploymentSet.LocalWebRoot ...將不得不考慮那一個。 – NotMyself 2008-12-05 21:31:20

0

如果你不想指定每個子目錄的名稱,使用此:

<Target Name="Clean"> 
    <Exec Command="del /F /Q %(DeploymentSet.LocalWebRoot)\*.*" /> 
    <Exec Command="for /d /r &quot;%(DeploymentSet.LocalWebRoot)&quot; %v IN (*) DO rd /S /Q &quot;%v&quot;" /> 
</Target> 
相關問題