2013-11-04 1058 views
2

我試圖將一個文件夾的子文件夾複製到其他未知名稱的文件夾中。目的是在使用它的所有員工文件夾中備份程序的源文件。如果在僱員文件夾中找不到程序文件夾,則不應執行任何操作。這看起來如下:批處理 - 使用通配符將文件夾複製到多個文件夾

來源:

F:\Users\myFolder\programFolder\Sourcefolder 

目標:

F:\Users\anotherOnesFolder\programFolder\Sourcefolder 

所以我的想法是要做到以下幾點:

xcopy "F:\Users\myFolder\programFolder\Sourcefolder" "F:\Users\*\programFolder\Sourcefolder" /e /y 

但是這個通配符似乎不起作用。我在路徑的盡頭發現了很多通配符,但這不適用於此。

+1

你'xcopy'命令行應該從http://www.xxcopy.com具有改進處理通配符使用'XXcopy'時工作。 – foxidrive

回答

0
for /d %%d in ("F:\Users\*") do (
    if /i not "%%~nxd"=="myFolder" if exist "%%~fd\folder\programFolder\Sourcefolder" ( 
     robocopy "F:\Users\myFolder\programFolder\Sourcefolder" "%%~fd\folder\programFolder\Sourcefolder" * /mir 
    ) 
) 
+0

請提供您建議的更多細節。 – aIKid

+0

對於f:\ Users中的每個目錄,如果所選文件夾的名稱和擴展名與源文件夾不匹配(爲了不將源文件複製到源文件夾),並且目標目錄存在(只有在用戶擁有文件時才複製),則鏡像源達到目標。 –

+0

經過一些修改,完成了這項工作,謝謝!我不得不刪除「\文件夾」,使其工作。因此最終(工作)代碼行是:for/d %% d in(「F:\ Users \ *」)do(if/i not「%%〜nxd」==「myFolder」if if exists「%%注意:「F:\ Users \ *」在這裏顯示爲錯誤的。「f:\ ProgramFolder \ Sourcefolder」(robocopy「F:\ Users \ myFolder \ programFolder \ Sourcefolder」「%%〜fd \ programFolder \ Sourcefolder」*/mir)和OP中。它必須是(不含空格)「F:\ Users \ *」 – user2944925

0
for /f %a in ('dir /ad /b "F:\Users*"') do (
xcopy F:\Users\myFolder\programFolder\Sourcefolder "%~dpfa\folder\programFolder\Sourcefolder" /e /y 
) 
+0

感謝您的努力!我沒有檢查這個版本,因爲另一個已經解決了我的問題。 – user2944925

相關問題