請問要如何以DOS command或WScript把子目錄下的檔案,全部複製至指定目錄(但不含目錄結構)

問:

假設有一A目錄,底下分別有A1,A2,A3,A4....的子目錄,而各子目錄底下都有一個檔案,請問要如何把A1,A2,A3,A4....下的檔案全部複製到B目錄,但不建立A1,A2,A3,A4....的目錄結構。

使用xcopy /s是會在B底下同步建立A1,A2,A3,A4....等目錄,故不適用。

擬答1:


  1. @echo off  
  2. set temp_file=4892346928364.txt  
  3. if exist %TEMP%\%temp_file% echo 卡家雖小....  
  4. rem 以上是隨便加的, 以下才是主要功能....  
  5.   
  6. dir /a-d /b /s A目錄 > %temp_file%  
  7. for /F "delims=''" %%f in (%temp_file%) do copy "%%f" B目錄  
  8.   
  9. rem 注意幾點:  
  10. rem 1. 批次檔內, 變數的 % 或 %%  
  11. rem 2. for /F 功能在 XP 或 Server 2003 測試 OK , 其他版本不保證.  
  12. rem 3. for /F 要加上 "delims=''" 避免目錄或檔名有空白造成異常.  
  13. rem 4. 實作時 A目錄 跟 B目錄 要自己改名, 另外要注意同名問題.  
  14. rem 5. 如果當備份用, 要注意時差引起的問題. 例如隔天複製時檔案已經存在的異常.  
  15. rem 6. 這方法需要有暫存區放一個檔.  
  16. rem 7. 只能滿足您題意需要, 無法處理衍生的問題, 例如但不限於: B目錄 空間不足.  
  17. rem 8. 本人無業中, 歡迎捐款, 但請勿拍打或餵食.  
  18.   
  19. set temp_file= 


擬答2:

  1. @for /R A目錄 %%f in (*) do @copy "%%f" B目錄

請問要如何以DOS command或WScript把子目錄下的檔案,全部複製至指定目錄(但不含目錄結構)