Jump to content

Jeweils Dateien in Ordnern zählen, bei Überschreitung einer bestimmten Anzahl Ereignis auslösen


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

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 von Christoph_A4
Link zu diesem Kommentar

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 von Christoph_A4
Link zu diesem Kommentar

$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"   }}
Link zu diesem Kommentar

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

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...