上書きせずにファイルをコピーする 質問する

上書きせずにファイルをコピーする 質問する

コマンド ラインで、「ディレクトリ A のすべてのファイルをディレクトリ B にコピーしますが、ファイルがすでにディレクトリ B に存在する場合は、どちらのファイルが新しいかに関係なく上書きせず、プロンプトも表示しません」と指示する方法が見つからないようです。

私はコピー、移動、xcopy、robocopy を試しましたが、私ができる最も近い方法は、robocopy に「A を B にコピーするが、新しいファイルを古いファイルで上書きしない」と指示することですが、これは私にはうまくいきません。xxcopy も検討しましたが、他の SVN ユーザーがビルドを実行するためにそのツールをインストールする必要がある Visual Studio のビルド後イベントにサードパーティの依存関係を持ちたくないため、破棄しました。

Visual Studio 2010のビルド後イベントにコマンドラインを追加して、T4新しいテンプレートEFモデル オブジェクトは、それが属するプロジェクト フォルダーに配布されますが、既存のオブジェクトの再生成されたファイルは、編集された可能性のある宛先ファイルを上書きしません。

T4 テンプレートは再生成されるため、ソース ファイルは常に新しいものとなり、「新しい」スイッチを確実に使用することはできないと思います。

可能な項目には部分クラスを使用しますが、部分クラスを使用できない生成項目もあります (例: デフォルトの EditorTemplate または DisplayTemplate *.ascx ファイルの生成)。

同様の問題を解決した人はいますか?

ベストアンサー1

ロボコピーまたは「堅牢なファイル コピー」は、コマンド ライン ディレクトリ レプリケーション コマンドです。Windows NT 4.0 以降では Windows リソース キットの一部として使用可能で、Windows Vista、Windows 7、および Windows Server 2008 では標準機能として導入されました。

   robocopy c:\Sourcepath c:\Destpath /E /XC /XN /XO

詳しく説明すると(Hydrargyrum、HailGallaxar、Andy Schmidt の回答を使用):

  • /ERobocopy は空のディレクトリも含めサブディレクトリを再帰的にコピーします。
  • /XCタイムスタンプが同じだがファイル サイズが異なる既存のファイルを除外します。Robocopy は通常、それらを上書きします。
  • /XN宛先ディレクトリ内のコピーよりも新しい既存のファイルを除外します。Robocopy は通常、それらを上書きします。
  • /XOコピー先ディレクトリ内のコピーより古い既存のファイルを除外します。Robocopy は通常、それらのファイルを上書きします。

Changed、Older、および Newer クラスを除外すると、Robocopy はスクリプト環境をロードする必要なく、元の投稿者が望んでいることを正確に実行します。

参考文献:テクネットウィキペディア
ダウンロード先:Microsoft ダウンロード リンク (リンクは2016年3月30日に最後に確認されました)

おすすめ記事