Sie können Dateien/Verzeichnisse mit CMD oder Powershell massenhaft löschen, es gibt jedoch schnellere Optionen
Skript C wäre schneller
Cd /d „%USERPROFILE%\AppData\Local\Temp\“ rd /s /q.
Dadurch werden die zusätzlichen Aufzählungen der for-Schleife in der Eingabeaufforderungsversion entfernt. Am Ende wird ein Fehler ausgegeben, da Sie den Ordner, in dem Sie sich befinden, nicht löschen können. Die Eingabeaufforderung ist immer schneller als Powershell-Cmdlets, da Sie ein Dateiobjekt erstellen müssen, da es kein natives Cmdlet gibt, das einfach einen Dateipfad als Zeichenfolge erstellt . Es dauert einige Zeit, die hinzugefügten Informationen wie Dateigröße, Erstellungsdatum usw. abzurufen und das Objekt zu erstellen. Sie werden auf jeden Fall einen Unterschied feststellen, wenn die Anzahl der Dateien im fünfstelligen Bereich oder höher liegt. Ich pflege täglich Ordner und Dateien, die gelöscht/archiviert werden mussten und sich im oberen 6- und 7-stelligen Bereich befanden, und dies war normalerweise die Löschlösung, die am schnellsten war.
Reddit-Benutzer
Ohne alles in einen Skriptblock zu packen
Measure-Command
, weiß ich es nicht.Ich kenne das Verzeichnis, das Sie angeben
$env:TEMP
oder%TEMP%
99 % der Zeit. Es befindet sich in%LOCALAPPDATA%
oder$env:LOCALAPPDATA
.Ich weiß auch, dass Sie kein get-childitem benötigen. Du könntest einfach
Remove-Item "$($env:TEMP)\*"-Recurse -Force
oderdel /f /s /q %TEMP%
Außerdem kümmert sich /s um alle Unterverzeichnisse, sodass Sie nicht nur einen einzigen Befehl benötigen, um dasselbe zu tun wie Bot-Befehle und die Schleife.
Reddit-Benutzer
Ich habe vor ein paar Jahren darüber nachgedacht, einige große Ordner (12 GB, 75.000 Dateien, 7.000 Ordner) aus einem Skript zu löschen, und habe mich für diesen Dotnet-Anruf entschieden.
[System.IO.Directory]::Delete($Folder.Fullname, $true)
Auf einem Remote-Computer ist es schnell, da es nicht lokal aufzählt. Ich bin mir nicht sicher, wie es zu Ihrem Anwendungsfall passt. Der Basisordner wird gelöscht. Möglicherweise können Sie es neu erstellen oder es wird bei Verwendung automatisch erstellt. Außerdem können in temporären Ordnern geöffnete Dateien vorhanden sein. Ich bin mir nicht sicher, was dort passiert.
Reddit-Benutzer
Seien Sie beim Robocopy mit /mir sehr vorsichtig. Ich habe miterlebt, wie mein Partner in der Kriminalität eines Tages einen großen Produktionsdateiserver in sein neues Zuhause gespiegelt hat, und zwar nach einem Zeitplan, der seit einigen Wochen in Betrieb war. Er wechselte zum neuen Zuhause und löschte die Quelle. Robocopy löschte sofort die gesamte Produktion. Er wurde direkt vor meinen Augen weiß, als ihm klar wurde, was passiert war. Gott sei Dank hatten wir Schattenkopien am Laufen. Die schnellste große Erholung, die ich je erlebt habe. Innerhalb von 5 (oder weniger) Minuten war die gesamte Produktion wieder da. Wir haben nie wieder darüber gesprochen. Aber ich bin sehr vorsichtig mit Robocopy und dem /mir-Schalter.
Reddit-Benutzer
Der bei weitem schnellste Weg zum Massenlöschen von Dateien/Ordnern ist Robocopy, das mit cmd.exe ausgeführt werden kann (kann ein oder zwei Sekunden schneller starten, die Ausführungszeit bleibt jedoch gleich):
mkdir „%USERPROFILE%\empty“ robocopy „%USERPROFILE%\empty“ „%USERPROFILE%\AppData\Local\Temp“ /mir rmdir „%USERPROFILE%\empty“
Oder führen Sie es mit powershell.exe oder pwsh.exe aus, auch wenn es sich hier nicht so anhört, als wäre PowerShell erforderlich:
mkdir „$ENV:USERPROFILE\empty“ & robocopy „$ENV:USERPROFILE\empty“ „$ENV:USERPROFILE\AppData\Local\Temp“ /mir rmdir „$ENV:USERPROFILE\empty“
Nun könnten hier Probleme auftreten, weil Dateien verwendet werden
Reddit-Benutzer
Get-ChildItem -Path „$env:USERPROFILE\AppData\Local\Temp“ -Force | Remove-Item -Force -Recurse -ErrorAction SilentlyContinue
Reddit-Benutzer
del /f /s /q „%USERPROFILE%\AppData\Local\Temp\*.*“ >nul 2>&1
for /d %%x in („%USERPROFILE%\AppData\Local\Temp*.*“) do @rd /s /q „%%x“
CMD-Skript oder PowerShell-Skript: Welches ist schneller für das Massenlöschen von Dateien/Verzeichnissen? von u/castiel3125 in PowerShell
Schreibe einen Kommentar