Sie können Dateien/Verzeichnisse mit CMD oder Powershell massenhaft löschen, es gibt jedoch schnellere Optionen

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:TEMPoder %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 -Forceoderdel /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

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert