
Eine von mir installierte Beta-Software hat versehentlich in jedem Ordner eine Protokolldatei mit einem Dateinamen erstellt, der länger als 100 Zeichen ist. Es dauert sehr lange, sie einzeln zu löschen.
Ist es möglich, alle Dateien, deren Namen länger oder gleich 100 Zeichen sind, gleichzeitig zu löschen, ohne Dateien zu löschen, die kürzer als 100 Zeichen sind?
Antwort1
Wenn in PowerShell Ihre Dateien aufgelistet werden:
gci -file -recurse | ?{$_.name.length -gt 100} | select name | ft -Wrap
Anschließend werden sie gelöscht:
gci -file -recurse | ?{$_.name.length -gt 100} | remove-item
Antwort2
Führen Sie den folgenden Befehl in PowerShell aus
ls | where { $_.Name.Length -ge 100 } | rm -WhatIf
ls
ist einer der Aliase fürGet-ChildItem
und rm
istRemove-Item
. Wenn die zu löschenden Dateien nicht im aktuellen Ordner sind, geben Sie den vollständigen Pfad zum Ordner nachls
Nachdem Sie bestätigt haben, dass die Dateien korrekt sind, entfernen Sie den -WhatIf
Teil, um die eigentliche Löschung durchzuführen. Wenn Sie auch Dateien in Unterverzeichnissen löschen möchten, fügen Sie -Recurse
hinzuls