2011-11-27 209 views
3

當我有一個註冊表文件,當右鍵單擊目錄時刪除.svn文件。我想延長這個windows的註冊表文件也刪除的Zend Studio中創建一些臨時文件:使用Windows註冊表刪除所有.svn和.project文件

  • .buildpath
  • 的.project
  • .settings(目錄)

繼答案從這個問題:Windows batch file to delete .svn files and folders

我:

Windows Registry Editor Version 5.00 
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN] 
@="Delete SVN Folders" 
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN\command] 
@="cmd.exe /c \"TITLE Removing SVN Folders in %1 && COLOR 9A && FOR /r \"%1\" %%f IN (.svn) DO RD /s /q \"%%f\" \"" 
+0

你的問題到底是什麼?你是否要求某人爲你實施其他人?你有沒有嘗試過,並有問題? – gregwhitaker

+0

是的,我想幫助刪除額外的文件。我會嘗試自己,但我不知道從哪裏開始 –

+0

這聽起來像你已經有了一個起點,即刪除svn文件的命令行。只需調整它即可刪除要刪除的其他文件。 –

回答

6

我認爲這是你在找什麼。我只對最後一行進行了修改。

Windows Registry Editor Version 5.00 
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN] 
@="Delete SVN Folders" 
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN\command] 
@="cmd.exe /c \"TITLE Removing SVN Folders in %1 && color 9A && for /r \"%~1\" %%F in (.) do (rd /s /q \"%%~fF\.svn\" \"%%~fF\.settings\" & del \"%%~fF\.buildpath\" \"%%~fF\.project\")2>nul \"" 

該解決方案是類似於LAF了描述,但他建議使用& &最後的命令。我認爲這可能會給你帶來問題,因爲只有RD成功時纔會執行下一個命令。但是,當前的算法嘗試從所有子目錄中刪除目錄,即使它不在那裏。我使用了&,因此無論RD的結果如何,都會執行下一個命令(DEL)。我擴展了RD以刪除這兩個目錄,並且添加的DEL命令刪除了這兩個文件。

我將stderr重定向到了nul,這樣就不會看到一堆錯誤消息。該算法非常低效,並且可能會根據子目錄的數量生成大量錯誤消息。

如果您的要求變得更加複雜,或者如果您想開發更高效的腳本,您最好創建一個執行該工作的批處理文件,然後從註冊表項中調用該批處理文件。在一行中讀取和維護一組複雜的命令有點麻煩。轉義序列在註冊表中也變得令人厭煩。

2

對命令的一些細節目前實施:

  • cmd.exe /c:將調用一個新的命令解釋器,並執行下面的命令,然後將退出(這就是/C一樣)。該命令的剩餘部分(在第一個和最後\"之間是將由命令interpretter執行的命令)
  • TITLE Removing SVN Folders in %1:更改命令解釋程序的標題爲「在卸下SVN文件夾」。
  • COLOR 9A:改變你的命令解釋
  • FOR /r \"%1\" %%f IN (.svn) DO RD /s /q \"%%f\"的配色方案:將刪除當前文件夾命名爲.svn文件所有文件夾。

%1表示您右鍵單擊的文件夾。命令之間的&&意味着命令解釋器將一個接一個地執行所有三個命令。你應該做的是在命令行的末尾加上自己的命令,如:

@="cmd.exe /c \"TITLE Removing SVN Folders in %1 && COLOR 9A && FOR /r \"%1\" %%f IN (.svn) DO RD /s /q \"%%f\" && *MyCommand*\""

其中mycommand的是你需要刪除臨時文件的命令。