2013-07-11 523 views
15

我需要我的程序運行:批處理文件運行XCOPY不覆蓋現有文件

xcopy s:\* z:\ /E 

當XCOPY運行時,它會如果一個文件需要被覆蓋提示,所以我想在批處理文件來回答無在所有情況下都要提示。

我該如何做到這一點?

+0

怎麼樣'/ Y'新? – Endoro

+6

剛碰到這個。 '/ D'爲我工作。您不必指定日期,在這種情況下,它表示任何*現有文件。 – Noseratio

+0

相關:http://stackoverflow.com/q/191209/945456 –

回答

9

xcopy無法配置爲跳過現有文件,因此您應該使用「robocopy」進行復制。

+1

這是錯誤的:使用xcopy/D – Thomas

+0

如果您需要實際使用日期限制,'xcopy/D'不起作用。 – Tukaro

18

我幾乎忽略了這個在開關自己。我得到了專家交流文章的幫助。

這裏是意義的開關:

/d:M-d-Y複製文件改變或在指定日期之後。 如果沒有給出日期,則僅複製那些源時間比目標時間新的文件。

「如果沒有給出日期」部分是特別重要的。這並不完全回答「沒有覆蓋現有文件」的問題,但如果源文件的現有文件時間戳不比目標文件新,它會回答它。

足夠接近政府工作。

1

爲了避免問題Y/N /你可以模擬「類型」使用echo命令爲: 呼應N | XCOPY布拉布拉...... 但it's不正確的,因爲任何不同的問題將是回答「N」太。

更好的選擇在cmd以替換XCOPY是: ROBOCOPY源:目的地:/ E [/ ZB]

在圖形模式中,有一種被稱爲 「TeraCopy的」 應用程序(使用谷歌找到它),該手柄Windows資源管理器複製與幾個選項(暫停,忽略[全部],覆蓋[所有],最小化,...),我想推薦。

+0

Teracopy非常棒。 –

2

這個工作對我來說:

echo n|xcopy s:\* z:\ /E  
11

我一直在使用下列標誌多年。它似乎完成了你在問題中描述的所有行爲。

xcopy s:\ z:\ /S /Y /D

S將複製在其中的所有子文件夾和文件 ÿ防止任何覆蓋提示 d基本上是副本什麼比什麼已經是在目標

+4

/y是允許xcopy在不提示的情況下覆蓋文件。 https://support.microsoft.com/en-us/kb/240268 – DaBlue

+0

爲我工作得很漂亮! –