假設有一A目錄,底下分別有A1,A2,A3,A4....的子目錄,而各子目錄底下都有一個檔案,請問要如何把A1,A2,A3,A4....下的檔案全部複製到B目錄,但不建立A1,A2,A3,A4....的目錄結構。
使用xcopy /s是會在B底下同步建立A1,A2,A3,A4....等目錄,故不適用。
<pre class="c" name="code">
@echo off
set temp_file=4892346928364.txt
if exist %TEMP%\%temp_file% echo 卡家雖小....
rem 以上是隨便加的, 以下才是主要功能....
dir /a-d /b /s A目錄 > %temp_file%
for /F "delims=''" %%f in (%temp_file%) do copy "%%f" B目錄
rem 注意幾點:
rem 1. 批次檔內, 變數的 % 或 %%
rem 2. for /F 功能在 XP 或 Server 2003 測試 OK , 其他版本不保證.
rem 3. for /F 要加上 "delims=''" 避免目錄或檔名有空白造成異常.
rem 4. 實作時 A目錄 跟 B目錄 要自己改名, 另外要注意同名問題.
rem 5. 如果當備份用, 要注意時差引起的問題. 例如隔天複製時檔案已經存在的異常.
rem 6. 這方法需要有暫存區放一個檔.
rem 7. 只能滿足您題意需要, 無法處理衍生的問題, 例如但不限於: B目錄 空間不足.
rem 8. 本人無業中, 歡迎捐款, 但請勿拍打或餵食.
set temp_file=