gearloose 10 Geschrieben 9. Februar 2011 Melden Geschrieben 9. Februar 2011 Hallo, ich bin gerade dabei ein Script zum Zippen von Verzeichnissen zu erstellen. Leider fehlt mir da ein Baustein. Das Script wechselt in einen Ordner und ruft alle Unterordner auf und macht mit 7-zip Archive daraus. Allerdings bekomme ich dann bei 7 Unterordner dann auch 7 Prozesse die gleichzeitig ablaufen. Bei 40 Unterordnern mit ordentlich Datei kann ich mir ein Spiegelei aufm Notebook backen, allerdings kann ich den ganzen Tag leider nicht nur fressen sondern muss auch arbeiten. Wie bekomme ich eine Abarbeitung im Einzlnen hin? CD *pfad* Get-ChildItem | foreach-object -Process {C:\Programme\7-Zip\7zG.exe a -tzip $_".zip" $_} Zitieren
blub 115 Geschrieben 9. Februar 2011 Melden Geschrieben 9. Februar 2011 Hallo, Es gibt ein Write-zip bei den Communityextensions unter http://pscx.codeplex.com/ google mal nach "write-zip pscx" . Vielleicht gehts damit besser, ich habe write-zip selbst noch nicht probiert, aber schon andere cmdlets aus dem Paket. Normal sind die gut. blub Zitieren
Dukel 460 Geschrieben 9. Februar 2011 Melden Geschrieben 9. Februar 2011 Wie wärs, wenn du die CLI version von 7Zip nutzt. Diese macht das per Default, da kein extra Prozess aufgeht. Zitieren
gearloose 10 Geschrieben 9. Februar 2011 Autor Melden Geschrieben 9. Februar 2011 Spitze das geht prima! Vielen Dank! Da war wohl ein G zuviel im Script :) Zitieren
Dukel 460 Geschrieben 9. Februar 2011 Melden Geschrieben 9. Februar 2011 Dank für die Rückmeldung. Ich würde mir evtl. die Backgroundjobs von Powershell anschauen. Damit kann man das doch paralellisieren und somit bei Mehrkern Prozessoren die Leistung verbessern bzw. die Laufzeit des Scriptes verkleinern. Bei 40 Unterordnern und 4 Kernen würde ich 4 Packprozesse laufen lassen und du brauchst nur 10x so lange und nicht 40x so lange wie bei einem Ordner. Zitieren
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.