PowerShell Ordner mit dem Buchstaben "A" an Tag 1 durchsuchen, Ordner mit dem Buchstaben "B" an Tag 2 druchsuchen

Yanox

Newbie
Registriert
Dez. 2020
Beiträge
3
Hallo

Kann mir jemand bei dieser Aufgabe helfen?

Ich muss ein Skript schreiben, welches am ersten Tag alle Ordner mit dem Buchstaben "A" durchsucht, am zweiten Tag alle mit dem Buchstaben "B", usw...

Das habe ich bis jetzt: Alle Projektordner werden durchsucht und jede Datei, welche innerhalb einem Jahr benutzt worden ist, erhöht den Count um 1. Somit können nicht mehr benutzte Ordner herausgefiltert werden.


PowerShell:
foreach($dir in $directories)
{  
    $files = Get-ChildItem $dir.FullName -Recurse -File
    #Anzahl unbenutzter Dateien wird auf 0 gesetzt
    $writecount = 0
    $readcount = 0
    #Jedes File in jedem Projektordner wird durchsucht
    foreach($file in $files)
    {
        #Jedes in einem Jahr benutzte File erhöht den Count um 1
        if($file.LastWriteTime -ge ($now.AddDays(-$days))){
            $writecount += 1
            break
        }
        if($file.LastAccessTime -ge ($now.AddDays(-$days))){
            $readcount += 1
            break
        }
    }

Vielen Dank
LG
 
Zuletzt bearbeitet:
und du hast was schon versucht? Weißt du, die Leute hier helfen gerne, aber nicht wenn man noch gar nix gemacht hat.
Und solche Snippets für alle Ordner durchsuchen solltest du schon mindestens mal in deinem Skript haben. Wenn dann nicht alles geht kann man immer noch helfen.
Also zeig bitte dein Skript.

Außerdem, warum "musst" du das Skript schreiben? Wer sagt das? Wer gibt dir diese Aufgabe, wenn du - Stand jetzt - eher wenig Ahnung von PowerShell hast?
 
Ich verstehe die Aufgabe nicht :)
Was meinst du mit am 1. Tag ? Erster Tag des Jahres der Woche des Mondzyklus?

Übrigens kannst du auch so filtern


PowerShell:
Get-ChildItem -Path c:\tmp -Recurse | where LastWriteTime -gt ( (Get-Date).AddYears(-1))

Das hier zeigt mir alle Dateien in C:\Windows die im letzen Jahr verändert wurden und mit A beginnen
Wenn $myday 2 ist dann alle die mit B beginnen ..
PowerShell:
$basepath = "C:\Windows"
$myday=1
$pattern = [char]([int][char]'A' + $myday-1 ) + "*"
Get-ChildItem -Path (Join-Path -Path $basepath  -ChildPath $pattern) |  where LastWriteTime -gt ( (Get-Date).AddYears(-1))
 
  • Gefällt mir
Reaktionen: Yanox
Hallo Cloudman

Vielen Dank für deine Hilfe. Das ist genau das, was ich gesucht habe.
Es soll am ersten Tag des Monats mit dem Buchstaben "A" beginnen und dann so weitermachen.

Eine Frage habe ich jedoch noch.

Für die Ordner mit Zahlen oder anderen Zeichen am Anfang wäre dann der 27. Tag im Monat vorgesehen, nachdem alle 26 Buchstaben durchsucht wurden.
Wie genau kann man es da lösen?
 

Ähnliche Themen

Antworten
3
Aufrufe
3.771
Zurück
Oben