2017-01-31 7 views
1

Ich versuche, eine ganze Reihe von Dateien mit Powershell von einem Verzeichnis zu einem anderen auf meinem Computer zu kopieren.Kopieren von Ordnern mit Platzhaltern

Ich habe Get-ChildItem C:\Users\Tom\Google Drive\My Files\*\Assessment 1\* verwendet, um zu identifizieren, dass dies der Pfad war, den ich auch kopieren wollte, und ich weiß über Copy-Item, aber ich möchte Teile des Pfadnamens beibehalten, wenn kopiert.

Beispiel:

Wenn ich von C:\Users\Tom\Google Drive\My Files\Cool Stuff\Assessment 1\* kopieren möchte ich die Dateien in einen Ordner gehen, die C:\Users\Tom\Archive\Cool Stuff\Assessment 1

genannt erstellt wird Während, wenn ich aus kopieren C:\Users\Tom\Google Drive\My Files\New Stuff\Assessment 1\*

möchte ich die Dateien gehen zu einem Ordner, der C:\Users\Tom\Archive\New Stuff\Assessment 1

Antwort

2

Get-ChildItem Cmdlet zu rekursiv erstellt wird y finden Sie alle Assessment 1 Ordner in Ihrem Basisverzeichnis und dann den Basispfad entfernen -replace mit schließlich die Elemente kopieren mit dem Copy-Item Cmdlets:

$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

Thank you very much! –

Verwandte Themen