こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

バッチファイル XCOPYで上書きしない

バッチファイルでXCOPYを実行し既存ファイルを上書きしないようにしたい(上書き確認を自動でNo返答する)さらに、存在しないファイルはコピーしたい
●構成
・C:\test\A\A.txt がある
・バッチファイルと同列に、A\A.txt 及び B.txt が存在
 さらにバッチファイルと同列に、からフォルダB が存在
●試したコマンド:
XCOPY * C:\test /E /-Y /Q < nul > nul
●結果:C:\test\A\A.txt は上書きされないが、B.txt 及びフォルダBがコピーされない
●求める結果:
C:\test\A\A.txt は上書きされず、コピー先に存在しないB.txt 及びフォルダBがコピーしたい

宜しくお願いいたします。

投稿日時 - 2008-11-26 20:22:32

QNo.4509481

困ってます

質問者が選んだベストアンサー

直接の回答とは少し異なりますが。
もしも、「存在するファイルは上書きしない」というのが、
「変更されていなければ上書きしない」
というレベルで良いのなら、

XCOPY /s/m * C:test

で可能です。

/m オプションは、アーカイブ属性のファイルのみ
コピーして、その時に、アーカイブ属性をクリアします。
アーカイブ属性自体は、ファイルが更新されたときにセット
されるので、結果的に、更新されたファイルだけコピー
することが出来ます。

投稿日時 - 2008-11-27 09:01:48

お礼

ありがとうございます。

投稿日時 - 2010-04-26 23:54:56

このQ&Aは役に立ちましたか?

4人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

上書き確認に対して、NULをリダイレクトしているので、YもNもAも入力されず、そこでコマンドが終わってしまいます。

簡単にやるには、N がたくさん並んだファイルを作りそれをリダイレクトで与えればいいでしょう。ファイルの個数が10000以下だとして、

(for /l %%A in (1,1,1000) do @echo NNNNNNNNNN)>%TEMP%\NNNNN
xcopy * C:\test /e /-y /q < %TEMP%\NNNNN

投稿日時 - 2008-11-27 02:30:48

お礼

ありがとうございます。

投稿日時 - 2009-08-31 00:59:58

あなたにオススメの質問