iT邦幫忙

0

將 Floppy a: 和 b: 內的任一檔案包含子目錄 copy 到 D:\

請問如何可以簡單的將 Floppy a: 和 b: 內的任一檔案包含子目錄 copy 到 D:\ 而且 copy 過去後不分子目錄 也就是放在根目錄。
若是用xcopy 請問如何下指令 還是有其他的軟體可以做的到請告知 謝謝

8
花輪
iT邦大師 1 級 ‧ 2010-03-07 23:47:22
最佳解答

philfeng提到:
且 copy 過去後不分子目錄 也就是放在根目錄

要做到這樣的功能,DOS 的 XCOPY 是做不到的!
頂多就是,原來是子目錄的在複製後,它還是「子目錄」,厲害吧?

marshuang iT邦新手 1 級 ‧ 2010-03-08 09:49:27 檢舉

喔~原來是要這樣的功能...要把來自四面八方目錄內目錄外通通copy到另一個磁碟的目錄外嗎?

8
marshuang
iT邦新手 1 級 ‧ 2010-03-05 15:29:47

xcopy a:\. d:\. /s /d /y (不含空目錄,如要連空目錄的也一起copy,要改用/E)
xcopy b:\. d:\. /s /d /y

/S 複製每個目錄及其包含的子目錄
/E 複製每個目錄及其包含的子目錄,也複製空目錄
/D 複製發生變更的檔案
/Y 所有覆蓋的詢問都回答 YES

6
nineone
iT邦新手 2 級 ‧ 2010-03-05 15:30:46

XCOPY source [destination] [/A | /M] [/D[:date]] [/P] [/S [/E]] [/V] [/W]
[/C] [/I] [/Q] [/F] [/L] [/G] [/H] [/R] [/T] [/U]
[/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z]\r\r
[/EXCLUDE:file1[+file2][+file3]...]

source 指定要複製的檔案。
destination 指定位置或者/以及新檔案的名稱。
/A 只複製設定成保存屬性的檔案,不要改變屬性的設定。
/M 只複製設定成保存屬性的檔案,並清除保存屬性。
/D:m-d-y 複製在指定日期當天或之後發生變更的檔案。如果沒有給日期,
只複製那些來源檔案日期比目的檔案日期為新的檔案。
/EXCLUDE:file1[+file2][+file3]...
指定檔案清單字串。每個字串
應該在檔案中的不同行。如果有字串對應到要進行複製的檔案絕
對路徑的任何部分,這個檔案會被排除複製。例如,指定字串
\obj\ 或 .obj 的話,會排除所有在 obj 目錄下副檔名是
.obj 的檔案複製。
/P 在建立每個目的檔案時顯示提示。
/S 複製每個目錄及其包含的子目錄,不複製空目錄。
/E 複製每個目錄及其包含的子目錄,也複製空目錄。/S 與 /E
相同,能夠用來修改 /T。
/V 驗證每個新檔案。
/W 在複製之前提示您按鍵繼續。
/C 如果錯誤發生時也繼續複製。
/I 如果目的不存在且複製一個以上的檔案的話,就假設指定的
目的一定是目錄。
/Q 在複製時不要顯示檔名。
/F 在複製時顯示來源及目的檔案的全部檔名。
/L 顯示要複製的檔案。
/G 允許加密檔案複製到不支援加密的
目的地。
/H 時複製隱藏檔和系統檔。
/R 覆蓋唯讀檔案。
/T 建立目錄結構,但不複製其中的檔案。不包括空目錄及子目錄。
/T /E 會包括空目錄及子目錄。
/U 只複製已經存在目的位置的檔案。
/K 複製檔案屬性。通常 Xcopy 會重設唯讀的屬性。
/N 用所產生的短檔名來進行複製。
/O 複製檔案所有權及 ACL 資訊。
/X 複製檔案審查設定 (包含 /O)。
/Y 不要提示您確認是否要覆蓋一個已經存在的檔案。
/-Y 示您確認是否要覆蓋一個已經存在的檔案。
/Z 在可重新開始的模式中複製網路檔案。

參數 /Y 可以在 COPYCMD 環境變數中預先設定。但可以在命令列中用 /-Y 參數
來覆蓋原有設定。

===> xcopy a:\*.* d:\. /s/f/v

nineone iT邦新手 2 級 ‧ 2010-03-06 13:24:27 檢舉

xcopy a:\. d:\. /s /d /y <===試過不行
xcopy a:\*.* d:\. /s/f/v <===試過不行
看來可能要有特殊軟體才行了吧

請問你的OS系統是什麼
如果是 WINXP 要在 COMAMAND下 下XCOPY才會有用
另外你要COPY的檔案名稱是什麼 有沒有中文

marshuang iT邦新手 1 級 ‧ 2010-03-06 21:41:52 檢舉

請問為何不行? 你的環境為何? 錯誤訊息為何?

6
shunyuan
iT邦研究生 1 級 ‧ 2010-03-05 21:05:39

都不對,討打~~~~~~~是我皮在癢,我討打。

shunyuan iT邦研究生 1 級 ‧ 2010-03-08 12:49:36 檢舉

推的人,也覺得我皮在癢

10
sailsolitary
iT邦研究生 2 級 ‧ 2010-03-08 10:30:05

其實重點應該是在於, 把 A: 或 B: 的檔案及目錄都 copy 到 D: 的根目錄..
一行搞定的方式...
dir /s/b A: >> C:\list.txt & for /f %a in (C:\list.txt) do xcopy %a D:\ /y & del C:\list.txt

弄成批次檔就是...

&lt;pre class="c" name="code">
Dir /s /b A: >> C:\AList.txt
For /f %%a in (C:\AList.txt) do Xcopy %%a D:\ /y 
Del C:\AList.txt

解釋
Dir /s /b A: >> C:\AList.txt
→ 將 A: 磁碟內的所有檔案目錄以清單的方式輸出至 C:\AList.txt 檔案中.
For /f %%a in (C:\AList.txt) do Xcopy %%a D:\ /y
→ 讀取 C:\AList.txt 檔案裡的清單, Xcopy 至 D:\ 下.
Del C:\AList.txt
→ 刪除剛剛輸出的檔案清單, 不刪掉下次會越來越多.

philfeng iT邦新手 5 級 ‧ 2010-03-08 14:23:57 檢舉

非常的感謝您的回答,看來真是詳細和可行,不過今天剛好休假在家,家中也沒軟碟,待明天上班再試看看 謝謝啦

marshuang iT邦新手 1 級 ‧ 2010-03-12 09:13:23 檢舉

原來,提出可行的解答者,最後並不是最佳解答...好怪的機制

Can iT邦新手 5 級 ‧ 2021-07-08 11:46:45 檢舉

sailsolitary
假設我建立一個檔案AList.txt在C碟

請問直接把上述的copy到記事本上把副檔名改成bat就可以了嗎?
<pre class="c" name="code">
Dir /s /b A: >> C:\AList.txt
For /f %%a in (C:\AList.txt) do Xcopy %%a D:\ /y
Del C:\AList.txt

我要發表回答

立即登入回答