2013-07-11 11 views
15

が、私は実行するために私のプログラムを必要とする既存のファイルを上書きせずにXCOPYを実行しますバッチファイル

xcopy s:\* z:\ /E 

ファイルを上書きする必要がある場合は、XCOPYを実行すると、それが要求されますので、私はノー答えるために、バッチファイルをしたいときすべての場合においてプロンプトを表示する。

どうすればこの問題を解決できますか?

+0

にすでにあるものよりも D、本質的にコピー何も新しいプロンプトを防ぎますか? – 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コピーファイルは、指定された日付以降に変更されました。 日付が指定されていない場合は、 ソース時刻が宛先時刻より新しいファイルのみをコピーします。

「日付が指定されていない場合」の部分は特に重要です。これは「既存のファイルを上書きしない」という質問には正確には答えませんが、ソースファイルの既存のファイルのタイムスタンプが目的のファイルよりも新しいものではない場合は答えます。

政府業務のために十分に近い。質問yを回避するために

1

/N /あなたのようにechoコマンドを使用して、「タイプ」をシミュレートすることができ、すべて: エコーN |任意の別の質問の答え「N」となりますので、XCOPYのblabla ... しかしit'sが正しくありませんあまりにも。 XCOPYを交換するCMDで

より良い選択がある: robocopyをソース:先:/ E [/ ZB]グラフィカルモードで

、 "Teracopy" と呼ばれるアプリ(それを見つけるためにGoogleを使用して)そのオーバーライドがあります私がお勧めしたいいくつかのオプション(一時停止、無視[すべて]、上書き[すべて]、最小化、...)でWindowsエクスプローラのコピー。

+0

Teracopyは優れています。 –

2

これが私の作品:

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

私は長年、次のフラグを使用してきました。それはあなたがその質問で説明したすべての行動を達成しているようです。

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

Sは、その中にすべてのサブフォルダとファイルをコピーします Yは、任意の上書きが先何 `/ Y`について

+4

/yは、xcopyがプロンプトを表示せずにファイルを上書きできるようにすることです。 https://support.microsoft.com/en-us/kb/240268 – DaBlue

+0

私のために美しく働いた! –