Löschen Sie alle Windows-Dateien in einem bestimmten Ordner, der vor dem aktuellen Monat liegt

0

Kann ich Ihre Hilfe und Ihr Know-how bei der Erstellung einer Batch-Datei für die unten stehende bitte haben?

Ich habe unten Dateien in einem Ordner \\abcdef123\test\root\child\source

AC_FDM_TREE_EXTRACT_20161216203034.touch
AC_FDM_TREE_EXTRACT_20170118204420.touch
AC_FDM_TREE_EXTRACT_20170214204730.touch
PS_Z_VT_SUPER_TREE_20161216203034.txt
PS_Z_VT_SUPER_TREE_20170118204420.txt
PS_Z_VT_SUPER_TREE_20170214204730.txt

Ich möchte alle Dateien außer dem aktuellen Monat dynamisch löschen. Dh, wenn JJJJMM der aktuelle Monat ist, löschen Sie alle Dateien (ohne Unterordner), die nicht JJJJMM entsprechen . *

Es ist unwahrscheinlich, dass Dateien mit zukünftigen Daten generiert werden. Aber wenn es ein schneller Gewinn ist, kann man sagen, alle Dateien löschen, bevor der aktuelle Monat noch besser ist.

Lerner16
quelle
2
Bitte beachten Sie, dass superuser.com kein kostenloser Skript- / Code-Schreibservice ist. Wenn Sie uns mitteilen, was Sie bisher versucht haben (einschließlich der Skripte / des Codes, den Sie bereits verwenden) und wo Sie steckengeblieben sind, können wir versuchen, bei bestimmten Problemen zu helfen. Sie sollten auch lesen Wie stelle ich eine gute Frage? .
DavidPostill
Dieser ist so einfach wie ein Kinderspiel, aber Sie haben noch nicht einmal einen Stich in etwas gemacht, um zu zeigen, welche Arbeit Sie in Ihre Aufgabe gesteckt haben. Es gibt viele Möglichkeiten, dies zu vervollständigen, aber es gibt eine einfache und einfache Lösung mit reinem Stapel, aber Sie haben nicht gezeigt, was Sie versucht haben, mit dem Sie Probleme haben ... Schade, so traurig !!
Pimp Juice IT

Antworten:

0

Ich möchte alle Dateien außer dem aktuellen Monat dynamisch löschen. Dh, wenn JJJJMM der aktuelle Monat ist, löschen Sie alle Dateien (ohne Unterordner), die nicht JJJJMM entsprechen. *

Hier ist ein PowerShell-Skript, das dies ausführt:

Push-Location "\\abcdef123\test\root\child\source"

$USculture=New-Object -TypeName CultureInfo -ArgumentList "en-US"
$targetDateString=(Get-Date).ToString("yyyyMM", $USculture)

Remove-Item * -Exclude ("*"+$targetDateString+"*")
Pop-Location

Die erste Zeile ändert den Ordner in "\ abcdef123 \ test \ root \ child \ source"

In der zweiten und dritten Zeile (zweiter Absatz) werden das aktuelle Jahr und der aktuelle Monat des Gregorianischen Kalenders im Format "jjjjMM" angezeigt, wobei "jjjj" ein vierstelliges Jahr und "MM" ein zweistelliger Monat ist.

Die vierte Zeile (letzter Absatz) löscht alle Dateien im aktuellen Ordner mit Ausnahme derjenigen, die dem Muster " jjjjMM " entsprechen.

In der letzten Zeile kehren Sie zu dem Ordner zurück, in dem Sie gestartet haben.


quelle
Vielen Dank Flottenkommando. Können Sie einen Link für Anfänger zu PowerShell vorschlagen?
Anfänger16
@ Learner16, ich gehe meine Lesezeichen durch, um zu sehen, welches für das geeignet ist, was du willst. Wenn Sie in der Zwischenzeit die gewünschte Antwort gefunden haben, vergessen Sie bitte nicht, auf das große Häkchen neben der Antwort zu klicken.