4

私はこれを正しく理解することは決してできないようです。

c:\MyApps\Websites\MySite既存のWebサイトがすでに実行されている既存のフォルダーがあります。の下にある最新のビットをダウンロードしましたc:\temp\MySite\artifacts

これを実行しようとすると

$source "c:\temp\MySite"
$destination "c:\MyApps\Websites\MySite"
copy-item $source $destination -recurse -force

すでに存在する場合c:\MyApps\Websites\MySiteは、それを入れようとしますがc:\MyApps\Websites\MySite\artifacts、まだ存在しない場合は、正しくコピーします。ここで何が起こっているのかわからない。助言がありますか?

4

1 に答える 1

9

robocopyコマンドを使用するだけです。これは、このようなことのために設計されています。

robocopy $source $destination /E

Windows 7に同梱されているため、内部コマンドであるため、まだ「Powershell」の方法ですが、コピーコマンドを使用したい場合は非常に近いですが、現在の実装はsourceフォルダーを取得して配置しますそれは内部にありますtarget(つまり、結果はC:\target\source\filesではなくになりますC:\target\files)。targetの内部を の内部のように見せたい場合は、次のようsourceにする必要があります。

cp C:\source\* C:\target -r -fo

に注意してください。これにより、フォルダーの内容*が取得されます。最初にクリアしたい場合は、コピーの前に行ってください。sourcetargetrm -r -fo C:\target\*

Powershell は長いパスを処理しないため、長いファイル名や深いフォルダーがある場合はとにかく robocopy を使用する必要があります。

于 2012-07-27T20:37:52.840 に答える