Copy-Item -Recurse がコピー先のフォルダー有無によって動作が異なるので、まとめてみました。
Copy-Item C:\SourceFolder D:\DestinationFolder -Recurse
C:\SourceFolder : コピー元フォルダー名
D:\DestinationFolder : コピー先フォルダー名
コピー元 | コピー先 | コピー先フォルダーの有無 | 振る舞い |
フォルダー名 | フォルダー名 | なし | コピー先のフォルダーが作成され、コピー元のフォルダー内がコピーされる |
フォルダー名 | フォルダー名\ | なし | コピー先のフォルダーが作成され、コピー元のフォルダー内がコピーされる |
フォルダー名 | フォルダー名 | あり | コピー先のフォルダー内にコピー元のフォルダーが作成される |
フォルダー名 | フォルダー名\ | あり | コピー先のフォルダー内にコピー元のフォルダーが作成される |
コピー元 | コピー先 | コピー先フォルダーの有無 | 振る舞い |
フォルダー名\ | フォルダー名 | なし | コピー先のフォルダーが作成され、コピー元のフォルダー内がコピーされる |
フォルダー名\ | フォルダー名\ | なし | コピー先のフォルダーが作成され、コピー元のフォルダー内がコピーされる |
フォルダー名\ | フォルダー名 | あり | コピー先のフォルダー内にコピー元のフォルダーが作成される |
フォルダー名\ | フォルダー名\ | あり | コピー先のフォルダー内にコピー元のフォルダーが作成される |
コピー元 | コピー先 | コピー先フォルダーの有無 | 振る舞い |
フォルダー名\* | フォルダー名 | なし | コピー先のフォルダーが作成され、コピー元のフォルダー内がコピーされるが、エラーになる |
フォルダー名\* | フォルダー名\ | なし | コピー先のフォルダーが作成され、コピー元のフォルダー内がコピーされるが、エラーになる |
フォルダー名\* | フォルダー名 | あり | コピー元のフォルダー内がコピーされる |
フォルダー名\* | フォルダー名\ | あり | コピー元のフォルダー内がコピーされる |
うーん、xcopy みたいな動作をさせたいのですが、これを見ると、コピー先のフォルダー有無にかかわらず Copy-Item -Recurse の動作を安定させるには、コピー元\、コピー先\ とするのが良さそうですが、コピー元の階層が少し深かったりするとエラーになるので、コピー先のフォルダーの有無確認をするしかないかも??
xcopy C:\SourceFolder D:\DestinationFolder\ /s
これと同様な事をしたいのですが、以外と苦戦しています。
Copyright © MURA All rights reserved.