すべての.Zip
ファイルをF:\tempzip
という特別なフォルダーにコピーする小さなスクリプトを作成しています。
Copy-Item cmdletで試してみましたが、どうにかできませんでした。スクリプトは、このフォルダーから「再帰的に」「.Zip」であるすべてのファイルをコピーする必要があります。
これは私が話しているスクリプトの一部です。
get-childitem F:\Work\xxx\xxx\xxx -recurse `
| where {$_.extension -eq ".Zip"} `
| copy-item F:\tempzip
何を追加する必要がありますか?
アイテムをcopy-item
にパイピングするとき、"F:\tempzip"
が宛先パスであることを伝える必要があります。
| Copy-Item -Destination F:\tempzip
Get-ChildItem
のパラメーター-filter
を使用して、where
演算子へのパイプを切り取ることができます。
Get-Childitem "C:\imscript" -recurse -filter "*.Zip" | Copy-Item -Destination "F:\tempzip"
編集:不要なforeach
ループの削除と説明の更新。
それよりもずっと簡単です。 Copy-Itemには独自の-Recurseスイッチがあります。あなたがしなければならないのは:
Copy-Item F:\Work\xxx\xxx\xxx\*.Zip F:\tempzip -Recurse
何らかの理由で、ここで述べたように、Copy-Itemの再帰は、私が望んでいたこと、および動作するように文書化されている方法を達成しませんでした。任意の深さのサブフォルダー階層に* .Zipまたは* .jpgファイルの束があり、それらを単一の場所(1つのフラットフォルダー、他の場所)にコピーしたい場合、Get-ChildItemを含むパイプコマンドで運が良かった。現在、検索のルートを含むフォルダーにいるとします。
Get-ChildItem -Recurse -Include *.Zip | Copy-Item -Destination C:\Someplace\Else
このコマンドはすべてのファイルをコピーし、フォルダー階層を複製しません。