2013-07-25 39 views
0

使用這種情況下,我將如何移動所有子文件夾中的所有文件,除了一個文件夾(存檔)?從多個目錄遞歸移動文件但忽略一個目錄?

在c:\文件夾中,我有一個名爲「Archive」的文件夾,並且一堆隨機命名的文件夾將來自ftp服務器中的txt文件。我需要從這些隨機生成的文件夾中遞歸地提取所有內容,同時單獨保留Archive文件夾。代碼當前行批量:

for /r %l in (*) do (IF NOT "%l"=="*Archive*" move /y %l c:\folder) 

結果

c:\folder>(IF NOT "c:\folder\Archive\arctest.txt" == "*Archive*" move /y c:\folder\Archive\arctest.txt c:\folder) 
1 file moved 

我想這個文件,而留在所有其他子文件夾的子文件移動。

+0

在linux中,你會做一些事情非常喜歡這樣:'找到。 -path ARCHIVE -prune -i {} -exec mv -f {} c:/ folder' –

回答

3

試試這個:

for /r %a in (*) do @echo %~dpa|findstr /rvi "^.:\\[^\\]*\\archive\\$" >nul&& echo move /y "%~a" c:\folder 
+0

嗨Endoro:這個簡化也可以工作:'findstr/rvi「\\ archive \\ $」> nul &&' – foxidrive

相關問題