2011-12-08 72 views
0

我的目錄結構如下所示;如何遞歸複製目錄結構並僅複製底層的文件(Windows批處理)

folder1 
    folder2 (thousands of folders like this) 
    folder3 
     someImage.jpeg 
     someDoc.doc 
     folder4 (optional folder) 
      someImage.jpeg 
      someDoc.doc 

我希望腳本複製包含文件夾4S保持了文件夾結構,但只有在複製文件夾4,像這樣的文件夾2秒;

folder1 
    folder2 (thousands of folders like this) 
    folder3 
     folder4 (optional folder) 
     someImage.jpeg 
     someDoc.doc 

我有一個簡單的循環,它可以識別包含文件夾4的文件夾,然後將文件複製到某個目錄。我無法弄清楚如何複製整個文件夾結構,同時跳過文件夾3中的文件。

+1

確定給定目錄結構中某個特定級別是最低可能性並不容易。例如,如果你的'folder2'文件夾包含一個'folder5',它有一個'folder6',那麼'folder4'和'fol​​der6'將同樣最低。如果'folder6'又包含一個'folder7',那麼這將是整個層次結構中的最低級別,但您如何設想確定*那個*? –

回答

2

在創建目錄樹的xcopy命令中有一個選項。

/T   Creates directory structure, but does not copy files. Does not 
       include empty directories or subdirectories. /T /E includes 
       empty directories and subdirectories. 

先做它,然後僅僅複製文件夾4s內的文件。

0

@Andryi在他的評論中指出,你不能明確地確定一個文件夾是否在樹結構中是最低的。所以你必須提前決定你想考慮哪一個開始複製。假設你決定它是結構中的第四個文件夾。在這種情況下,請使用此代碼讓您開始。

@echo off 
for /d %%a in (*.*) do (
    echo %%a 
    for /d %%b in (%%a\*.*) do (
    echo %%b 
    for /d %%c in (%%b\*.*) do (
     echo %%c 
     for /d %%d in (%%c\*.*) do (
     echo %%d 
     for %%f in (%%d\*.*) do (
      echo %%f 
     ) 
    ) 
    ) 
) 
) 
相關問題