2015-05-30 72 views
0

部分未知的目錄我試圖創建一個批處理文件,將目錄複製到另一個目錄但是,我想複製的目錄也有一部分名稱隨機生成即「jibberish.Directory1」。 有沒有辦法做到這一點?批處理文件xcopy到一個點(。)在

我嘗試類似:

XCOPY "%~dp0DATA\test" "%APPDATA%\Application1\Directory\*Directory1\" /E /C /R /I /K /Y 

但總失敗。任何幫助將不勝感激:)謝謝!

+0

選擇目標文件夾的標準是什麼?如果您使用通配符,則可能會有多個匹配項。它應該是最近創建的,還是最近使用過的或......? – user1016274

+0

一個進程創建100個文件夾,文件夾命名結構爲NAME.ID。該ID很容易,對於所有100個文件夾,從1到100,但名稱各不相同。我需要添加一個目錄(包含設置)到所有的NAME.ID文件夾,但是不想複製名稱,但可以將行復制到excel或其他東西,並複製所有100個升序數字..希望這有助於解釋更好一點 – Raine

回答

0

xcopy不支持目錄名稱中的通配符。因此,對於迴路另外需要用於此任務是如下:

在文件夾C:\Temp有批處理文件DuplicateFolder.bat用下面的代碼。

要複製的文件夾在批處理文件的目錄中是DATA\test

C:\Temp\DATA\test包含:

  • SubFolder1
    • FirstFile.txt
    • 二FILE.TXT
  • 子文件夾2
    • ListFile.csv
  • 的Readme.txt

所有這些子文件夾和文件應該被複制到%APPDATA%\Application1\Directory每個子文件夾以點後的數字結束。

%APPDATA%\Application1\Directory包含例如:

  • 夾abc.1
  • 夾eg.2
  • 文件夾h至K.3
  • 夾last.4
  • 文件夾未更改

最後一個文件夾應該被忽略,因爲它在末尾不包含點和數字。

結果應該是例如用於第一子文件夾Folder abc.1

  • 文件夾ABC。1
    • SubFolder1
      • FirstFile.txt
      • 二FILE.TXT
    • 子文件夾2
      • ListFile.csv
    • 的Readme.txt

DuplicateFolder.bat代碼是:

@echo off 
set "SourceFolder=%~dp0DATA\test" 
for /D %%F in ("%APPDATA%\Application1\Directory\*") do (
    if not "%%~xF" == "" %SystemRoot%\System32\xcopy.exe "%SourceFolder%" "%%~F" /E /C /Q /R /I /K /Y >nul 
) 
set "SourceFolder=" 

這個批處理文件只是檢查,如果文件夾名稱包含一個圓點任何檢查點後的字符串 - 在「文件擴展名」與引用%%~xF - 確實是一個數字。這個非常簡單的測試非常快。

有關使用的命令和參數和特殊循環變量引用的解釋細節打開命令提示符窗口中,執行for /?,並閱讀幫助輸出在控制檯窗口此命令。

+0

你先生,是英雄!這工作完美,我沒有意識到你不能在我嘗試和沒有看過FOR的方式使用xcopy的通配符。你真的已經擴大了我的知識面,並且拯救了我許多小時的失敗咆哮錯誤的樹。感謝您抽出時間來幫助解決這個問題,我真的很感激它^ _ ^ – Raine