2010-11-29 17 views
1

最近のバックアップ/リストアのサイクル中、私は '.svn'ディレクトリ内から 'tmp'ディレクトリを省略できたことに気付きました。コピー。私は手作業で新しい空の 'tmp'ディレクトリを作成するので、各フォルダを再帰的に探し、 '.svn'ファイルを探し出し、それらの中に 'tmp'フォルダを作成する方法を探しています。特定のディレクトリに再帰的にフォルダを作成する

私は混乱に私は愚かな何かをした前に、私のは、助けを求める:)

コメント/提案は、おかげで理解されるだろうと思った既存のフォルダをアップしたくないので!

PS:これはWindowsマシン上にあるので、悲しいことにBashやその他のUNIXユーティリティは存在しません。

答えて

1

何件あるかによって異なります。お好みのエディタで

dir/B/S .svn >dirs.bat 

編集dirs.batと

一覧は、ディレクトリ。各行の先頭にmdを追加してください(各行はCのように始まりますので、メモ帳を含むかなりダムなエディタを使ってC:をmd C:に変更できます)。/tmpを各行の末尾に追加します(.svn.svn\tmpに置き換えてください)。セーブ。

ジョブが完了しました。

+0

こんにちはポール、あなたの提案に感謝します。フォルダのパスに空白が含まれていないとうまくいき、空白がある場合は失敗します(バッチファイルを実行するディレクトリがランダムに作成されます。 – Hamza

+0

あなたのテキストを置き換えるときにディレクトリを引用符で置き換えてください –

+0

はい、私はいくつかの引用符が見付かりませんでした:/両方あなたのためにありがとうございましたヘルプ。 – Hamza

0

プロセス全体を自動化する方法は次のとおりです。 fixtmp.cmdのようなファイルに以下を入れてください:

@echo off 
for /f "usebackq delims=" %%I in (`dir /b /s .svn`) do (
echo Fixing %%I... 
mkdir "%%I\tmp" 
) 
+0

あなたの提案をありがとう – Hamza

2

上記のスクリプトは、Windows 7のマシン上では動作しません。 "dir /b /s .svn"はすべてのディレクトリを取得しません。「ファイルが見つかりません。」というエラーが発生します。

ディレクトリを選択するだけでなく、/ adを持つようにスクリプトを変更しました。ここに私のために働くsrciptがあります。

@echo off 
for /f "usebackq delims=" %%I in (`dir /ad /b /s .svn`) do (
echo Fixing %%I... 
mkdir "%%I\tmp" 
) 
関連する問題