6

次のディレクトリ構造を検討してください。

C:\temp\A\file.txt
C:\一時\B

コマンドを実行すると

Copy-Item "C:\temp\A" "C:\temp\B\A" -Recurse -Force -ErrorAction Stop

私は持っている

C:\temp\A\file.txt
C:\temp\B\A\file.txt

この新しい状況から始めて、同じコマンドをもう一度実行すると、最終的には

C:\temp\A\file.txt
C:\temp\B\A\file.txt
C:\temp\B\A\A\file.txt

同じコマンドを実行しても結果が異なるのはなぜですか?

4

1 に答える 1

4

最初のケースでは、宛先フォルダーC:\temp\B\Aが存在しないためCopy-Item、(欠落している) 宛先フォルダーを作成し、ソース フォルダーのコンテンツをそこにコピーします。

2 番目のケースでは、宛先フォルダーが既に存在するためCopy-Item、ソース フォルダー全体 (フォルダー自体を含む) を (既存の) 宛先フォルダーにコピーします。

この動作を回避するには、コピーする前に、コピー先フォルダーが存在するか存在しないかを確認してください (コピー元フォルダーをコピー先にコピーするか、コピー先としてコピーするかによって異なります)。Test-Path宛先の存在を確認しNew-Item、不足しているフォルダーを作成するために使用します。

于 2016-05-23T14:47:49.253 に答える