Christoph_A4 10 Geschrieben 15. November 2013 Melden Teilen Geschrieben 15. November 2013 (bearbeitet) Hallo, ich glaube ich mache es mir unnötig schwer, jedenfalls komm ich mit meinem Weg an dieser Stelle nicht mehr weiter. Ich bräuchte mal einen Ansatz, folgende Aufgabe: Ich habe ein Ordnerstruktur, aktuell bestehend aus 120 Ordnern. In diesen befinden sich Dateien, es ist keine weitere Ordnerebenen vorhanden. Ich möchte ganz einfach jeweils die Dateien zählen. Wenn eine bestimmte Dateienanzahl pro Ordner erreicht ist, möchte ich diese in eine txt oder csv-Datei exportieren, allein mit den Informationen, welchen der 120 Ordner es betrifft und deren Dateien bearbeitet 15. November 2013 von Christoph_A4 Zitieren Link zu diesem Kommentar
Dukel 455 Geschrieben 15. November 2013 Melden Teilen Geschrieben 15. November 2013 Und wo ist jetzt dein Problem? Schleife über alle Ordner und für jeden Ordner die Dateien zählen und bei überschreiten den Ordnernamen raus schreiben. Zitieren Link zu diesem Kommentar
Christoph_A4 10 Geschrieben 15. November 2013 Autor Melden Teilen Geschrieben 15. November 2013 (bearbeitet) Mein Problem ist, dass ich mit Powershell nach einem Grundkurs quasi erst anfange. ;-) [array]$ordner=Get-ChildItem "\\c:\_terminalserverprofile_test\*\Eigene Dateien\BriefkorbTS" foreach ($profilordner in $ordner) { (Get-ChildItem $profilordner.FullName -Recurse) echo "Anzahl Dateien:" ($anzahl=(Get-ChildItem $profilordner.FullName -Recurse).count) if ($anzahl -gt 4) {$xyz | Set-Content -Path "c:\test.csv"} } Das ist mein Ansatz, wahrscheinlich zu kompliziert. Das Problem an dem Konstrukt ist einfach: Welche Variable kommt an die Stelle "xyz". Es besteht ja keine Verbindung von $anzahl zu $ordner. bearbeitet 15. November 2013 von Christoph_A4 Zitieren Link zu diesem Kommentar
Dukel 455 Geschrieben 15. November 2013 Melden Teilen Geschrieben 15. November 2013 $ordner ist ja auch dein Array. Dein aktuelles Objekt in der Schleife ist $profilordner. Achtung! $profileordner ist ein Objekt, du brauchst eine Eigenschaft (Name oder FullName) davon. Das (Get-ChildItem $profilordner.FullName -Recurse) in Zeile 4 kannst du sparen. Du willst ja nicht alles ausgeben sondern nur die Anzahl wissen. Ich hätte das etwas vereinfacht ($xyz darfst du selbst noch herausfinden): foreach ($profilordner in (Get-ChildItem "\\c:\_terminalserverprofile_test\*\Eigene Dateien\BriefkorbTS" )) { if (((Get-ChildItem $profilordner.FullName -Recurse).count) -gt 4){ $xyz | Set-Content -Path "c:\test.csv" }} Zitieren Link zu diesem Kommentar
Christoph_A4 10 Geschrieben 18. November 2013 Autor Melden Teilen Geschrieben 18. November 2013 Hallo Dukel, die Variable xyz ist nun aber das zentrale Problem an der ganzen Sache oder sehe ich das falsch? Welcher content kann denn jetzt in die csv geschrieben werden? Vielleicht ist es besser zu erklären anhand eines konkreten Beispiels: Es existieren die Ordner c:\_terminalserverprofile_test\Testordner1\Eigene Dateien\BriefkorbTS c:\_terminalserverprofile_test\Testordner2\Eigene Dateien\BriefkorbTS c:\_terminalserverprofile_test\Testordner3\Eigene Dateien\BriefkorbTS c:\_terminalserverprofile_test\Testordner4\Eigene Dateien\BriefkorbTS c:\_terminalserverprofile_test\Testordner5\Eigene Dateien\BriefkorbTS Im Ordner "BriefkorbTS" des Testordners 2 und 5 liegen mehr als 4 Dateien. Als Ausgabe in dieser csv würde ich mir folgendes wünschen: c:\_terminalserverprofile_test\Testordner2\Eigene Dateien\BriefkorbTS c:\_terminalserverprofile_test\Testordner5\Eigene Dateien\BriefkorbTS Zitieren Link zu diesem Kommentar
Dukel 455 Geschrieben 18. November 2013 Melden Teilen Geschrieben 18. November 2013 foreach($item in (get-childitem c:\)){ $item | fl * break } Alles was du da siehst sind Eigenschaften, die du nutzen und rausschreiben kannst. Zitieren Link zu diesem Kommentar
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.