25

「myfolder」内のすべての「.svn」ファイル/フォルダー/サブフォルダーを削除するには、バッチ ファイルで次の単純な行を使用します。

FOR /R myfolder %%X IN (.svn) DO (RD /S /Q "%%X")

これは機能しますが、「.svn」ファイル/フォルダーがない場合、バッチ ファイルに「指定されたファイルが見つかりません」という警告が表示されます。この警告は非常にうるさいので、「.svn」ファイル/フォルダーが見つからない場合は RD コマンドをスキップする必要があることを理解させる方法を考えていました。

通常はワイルドカードを使用するだけで十分ですが、この場合は拡張子が .svn のファイル/フォルダーを削除したくないため、それらの使用方法がわかりませんが、正確に名前が付けられたファイル/フォルダーを削除したいためです。 svn」なので、これを行うと:

FOR /R myfolder %%X IN (*.svn) DO (RD /S /Q "%%X")

正確に「.svn」という名前のファイル/フォルダーは削除されなくなりました。私もこれを試しました:

FOR /R myfolder %%X IN (.sv*) DO (RD /S /Q "%%X")

しかし、それも機能しません。彼は何も削除しません。

4

8 に答える 8

41

あなたが試すことができます

FOR /R myfolder %%X IN (.svn) DO (RD /S /Q "%%X" 2>nul)
于 2010-03-28T11:47:41.780 に答える
4
for /f "tokens=* delims=" %%i in ('dir /s /b /a:d *svn') do (rd /s /q "%%i")
于 2010-12-14T10:10:55.763 に答える
2

findを使用したそのようなもの:

rm -rf `find . -name ".svn" -type d`

編集:

私はこれがLinux用であることを知っています(私はバッチの代わりにbashを読みます)。ランダムにここにたどり着くLinuxユーザーを助けるためにここに残しておきます:)

于 2010-03-28T12:06:47.487 に答える
1

実際、この回答は Jesper Rønn-Jensen によるものです。 http://justaddwater.dk/2011/03/01/easy-delete-all-svn-subfolders-in-windows-explorer/

共有する方がずっと簡単だと思いました。いくつかのプロジェクトを .SVN から .GIT に変換しているので、これは素晴らしかったです。エクスプローラーにメニュー項目を追加して、フォルダーを削除できるようにします。.reg ファイルを作成し、インポートします。

ここに画像の説明を入力

Windows Registry Editor Version 5.00
;
; Running this file will give you an extra context menu item in Windows Explorer
; "Delete SVN folders"
;
; For the selected folder, it will remove all subfolders named ".svn" and their content
; Tip from http://www.iamatechie.com/remove-all-svn-folders-in-windows-xp-vista/
;
; Enrichened with comments by Jesper Rønn-Jensen ( http://justaddwater.dk/ )
;
;
[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 && FOR /r \"%1\" %%f IN (.svn) DO RD /s /q \"%%f\" \""
于 2016-04-15T12:24:12.140 に答える
0

奇妙な補足:私が使用する場合

FOR /R . %%X IN (*.svn) DO (echo "%%X")

それ以外の


FOR /R myfolder %%X IN (.svn) DO (RD /S /Q "%%X")

.svn で終わるすべてのディレクトリを一覧表示するだけでなく、それらのすべてのコンテンツも一覧表示します。これは For コマンドのバグで、ワイルド カードを指定しないと展開されてしまいます。非常に奇妙な。

ケン

于 2012-07-13T15:36:42.423 に答える
0

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 を使用することをお勧めします。

于 2012-11-25T15:43:49.380 に答える
-2

Windows上のすべてのsvnファイルを削除するには

for /d /r . %d in (.svn) do @if exist "%d" rd /s/q "%d"

.svn はフォルダ名です

于 2014-04-07T02:18:33.683 に答える