簡體   English   中英

遞歸刪除 Windows 上所有 .svn 目錄的命令

[英]Command to recursively remove all .svn directories on Windows

我有一個包含許多子目錄的目錄。 在每個文件夾中都有一個 subversion 文件夾 (.svn)。

windows中是否有一個命令可以遍歷每個文件夾和子目錄並刪除.svn文件夾?

或者我必須創建一個腳本還是手動完成?

使用以下行制作一個小批處理文件,並從其下有 .svn 目錄的父文件夾中執行它。

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

您還可以直接從命令提示符發出以下行:

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

在 PowerShell 中執行此操作。

注意:這是遞歸的,因此請確保您位於正確的目錄中!

gci -fil '.svn' -r -force | ri -r -force

這是我的源代碼樹清理腳本的其余部分。

gci -fil 'bin' -r -force | ri -r -force
gci -fil 'obj' -r -force | ri -r -force
gci -fil '_ReSharper*' -r -force | ri -r -force
gci -fil '*.suo' -r -force | ri -r -force
gci -fil '*.user' -r -force | ri -r -force

使用svn export命令將 Subversion 工作副本導出到沒有.svn目錄的新“干凈”目錄結構中。

如果要刪除 Windows 中名為.svn 的所有子文件夾,請使用以下內容創建批處理文件:

for /f "tokens=* delims=" %%i in ('dir /s /b /a:d *.svn') do (
rd /s /q "%%i"
)

將其保存在文件del_All_Dot_SVN_Folders.cmd 中 運行它。 你完成了。

感謝http://www.axelscript.com/2008/03/11/delete-all-svn-files-in-windows/

記住上面的代碼有 .svn 而鏈接中的代碼只有 *svn 所以最好有 .svn 以免意外產生不良影響。

只需在文件資源管理器的搜索框中鍵入 .svn,然后選擇並刪除所有搜索結果(參見 JB Nizet 的評論)。 這種方法當然也可以用於快速刪除 obj 和 bin 目錄,例如在組織 svn 檔案時。

雖然OP要求提供命令行解決方案,但他也表示使用Windows,並考慮手動刪除,因此仍然可以考慮使用文件資源管理器方法,特別是因為它是最快的方法,並且不依賴svn export之類的“工具”。

盡管 OP 已經選擇了一個可接受的答案,但此答案可能對其他人仍然有用。 至少它對我很有用,我是一個喜歡命令行並首先通過這篇文章了解搜索框的長期 linux/windows 用戶:-)

帶有搜索框的資源管理器屏幕截圖

很抱歉參加聚會遲到了,但這里還有一行:

for /r %i in (.svn) do rmdir /s /q "%i"

我知道現在回答這個為時已晚,但我想如果在您的 eclipse 上安裝了 eclipse 和 svn 插件,有一種簡單的方法。 右鍵單擊項目,轉到 Team->disconnect。 它將打開一個彈出窗口,您可以在其中選擇第一個選項:“同時從文件系統中刪除 SVN 元信息”。 這將自動刪除所有 SVN 文件夾以及 svn 屬性文件,您有時可能會在僅刪除 .svn 文件夾時忘記這些文件!

重要的一點,如果你想運行shell來刪除 .svn 文件夾,你可能需要-depth參數來防止 find 命令進入剛剛刪除的目錄並顯示愚蠢的錯誤消息,例如

"find: ./.svn: No such file or directory"

要擺脫此錯誤,您可以使用 find 命令,如下所示:

cd [dir_to_delete_svn_folders]
find . -depth -name .svn -exec rm -fr {} \;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM