2010-11-29 91 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)。保存。運行BAT文件

工作完成。

+0

嗨保羅,感謝您的建議。如果文件夾的路徑中不包含任何空格,則工作正常(如果存在空格,則會失敗(並且隨機開始在同一個目錄中創建文件夾,我運行該批處理文件,這很奇怪)。我嘗試在「s」中包裝路徑,但這並沒有幫助。任何想法?乾杯 – Hamza 2010-11-29 17:19:35

+0

當你做文本替換時將目錄放在引號中 – 2010-11-29 18:00:06

0

以下是如何自動化整個過程。將下面的文件中像fixtmp.cmd

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

上面的腳本沒有在我的Windows 7機器上工作。 「dir /b /s .svn」沒有得到所有目錄,我得到一個「文件未找到」錯誤。

我改變腳本有/廣告除了只選擇目錄和工程!這是爲我工作的srcipt。

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