2017-01-31 19 views
1

Powershellを使用して、コンピュータ上のあるディレクトリから別のディレクトリにファイルをたくさんコピーしようとしています。ワイルドカードを使用したフォルダのコピー

Get-ChildItem C:\Users\Tom\Google Drive\My Files\*\Assessment 1\*を使用して、これもコピーしたいパスであることを確認しました。私はCopy-Itemを知っていますが、コピーするとパス名の一部を維持したいと思います。

例:私はC:\Users\Tom\Google Drive\My Files\Cool Stuff\Assessment 1\* からコピーした場合

私はC:\Users\Tom\Google Drive\My Files\New Stuff\Assessment 1\*

からコピーした場合、私は、ファイルを移動したいのに対しファイルがC:\Users\Tom\Archive\Cool Stuff\Assessment 1

呼ば作成されたフォルダに行きたいです作成されたフォルダへC:\Users\Tom\Archive\New Stuff\Assessment 1

答えて

2

Get-ChildItemコマンドレットを使用して再帰的にyは、あなたのベースディレクトリ内のすべてのAssessment 1のフォルダを検索し、最終的にはCopy-Itemコマンドレットを使用してアイテムをコピーする-replaceを使用してベースパスを削除します。

$baseDir = 'C:\Users\Tom\Google Drive\My Files\' 
$destination = 'C:\Users\Tom\Archive\' 

Get-ChildItem $baseDir -directory -Filter 'Assessment 1' -Recurse | ForEach-Object { 
    $newPath = Join-Path $destination ($_.FullName -replace [regex]::Escape($baseDir)) 
    Copy-Item $_.FullName $newPath -Force -Recurse 

} 
+0

はどうもありがとうございました! –

関連する問題