Ich möchte in der Lage sein, ein PowerShell-Skript zu schreiben, das einen Ordner (oder einen Satz von Ordnern) übernehmen würde und in dem die Ordnerstruktur (ohne Dateien) erstellt werden, wo die Dateistruktur (ohne die Ordner) erstellt werden könnte, oder in der sowohl die Dateien (alle oder ausgewählte) AND Ordner erstellt werden könnten.Kopieren von Ordnern ohne Dateien, Dateien ohne Ordner oder alles mit PowerShell
Example:
C:\ProdData has 3 subfolders in it
C:\ProdData\Fld1
C:\ProdData\Fld2
C:\ProdData\Fld3 - has 2 subfolders under it
C:\ProdData\Fld3\MyFolder1
C:\ProdData\Fld3\MyFolder2
Jeder Ordner oben hat eine Vielzahl von Dateien unterschiedlicher Größe in verschiedenen Dateierweiterungen.
Ich mag einen Powershell-Skript haben, dass die Ordnerstruktur an anderer Stelle kopieren würde, mir eine Auswahl von Ordnerstruktur gab nur, Dateien Nur oder Dateien und Ordner kopiert werden.
Im obig ich möchte in der Lage sein C zu kopieren: \ ProdData in einem anderen Ordner, im Wesentlichen ProdData zu Testdata Umbenennung (das heißt, C: \ ProdData zu C kopiert: \ Testdata), oder um die gesamte Ordnerstruktur zu kopieren.
C:\ProdData
in einen anderen Ordner, der ein Unterordner von etwas anderes: C:\TestArea\TestFolders\2012-04-01\TestData\ProdData\Fld1
, etc ...
Und selektiv wählen Ordner, Dateien oder beide aufzunehmen.
Die ideale Lösung wäre, (nur für Ordner) die Ordnerstruktur zu übernehmen, sie zu exportieren/speichern, sie einzulesen und dieselbe Struktur an anderer Stelle zu erstellen. Einige Lösungen, die ich gefunden habe, sagten, dass sie nur die Ordnerstruktur kopiert haben, aber wenn Daten existieren, wird das auch kopiert und du kannst das eine oder das andere nicht ausschließen. Ich habe eine Teillösung für das Dateien-einzige Anforderung, die den Weg halb bewahrt, aber es wäre eine Datei nehmen:
c:\ProdData\Fld1\MyFile.dat
und kopieren Sie sie auf:
c:\TestData\yyyyMMdd_hhmmss_ProdData_Fld1_MyFile.dat
Aber das ist nicht etwas, das könnte leicht decodiert werden und es wäre unmöglich, die Quellstruktur wieder zu integrieren. Ich würde mich freuen, wenn ich darüber nachdenke, wie ich das erreichen kann, ohne das Rad neu zu erfinden.
Dank. Ich hatte Robocopy nicht einmal installiert und es entspricht den Bedürfnissen ziemlich gut. Was ich für die Struktur zu einer Datei getan habe, war, Show-Tree zu einer Textdatei zu pipen. Das brachte ein anderes Stück von dem, was ich suchte. Keine Sache würde alles tun, aber 3 relativ einfache Stücke zusammen vollbrachten, was ich brauchte. Vielen Dank für Ihre Hilfe! –
Für die abgeflachte, können Sie den mittleren Abschnitt überspringen und einfach die Option -File auf Get-ChildItem like (und Copy-Item statt Robocopy) verwenden: Get-ChildItem $ source -Recurse -Datei | Foreach-Objekt {Kopie-Item $ _. FullName $ dest}. Kein großer Unterschied. – Brandon
@Brandon Guter Punkt. Solange Sie sich auf Powershell 3 befinden, können Sie das sicher tun (die Parameter '-File' und' -Directory' existierten erst ab v3). – ajk