Via Batch Dateien Löschen

Deine Frage passt nicht in die anderen Bereiche, dann stelle sie hier.
Antworten
winkill
Profi
Profi
Beiträge: 194
Registriert: 09.05.2017, 03:56
Danke erhalten: 6 Mal

Via Batch Dateien Löschen

Beitrag von winkill » 13.04.2022, 01:04

Hallo,

wie kann ich mit einer Batch Datei aus einem Verzeichnis alle Dateien ohne Rückfrage löschen. Unabhängig ob es sich um eine Systemdatei handelt oder nicht. Zb. C:\Temp\*.* oder ein Systemverzeichnis.

Bisher habe ich folgende Parameter verwendet:
echo
attrib C:\Temp\*.* -h -s -a -r
del C:\Temp\*.* /f /q /s
pause

Manchmal habe ich das Problem, dass im Verzeichnis Dateien sind welche einfach nicht gelöscht werden weil sie unter Umständen keine Dateiendung haben. Ich erhalte gelegentlich die Rückmeldung Datei nicht gefunden.

Gibt es dazu eine Lösung, bzw. was mache ich falsch?

VG
winkill
Intel Xeon 1245V5 | Mainboard MSI C236A WORKSTATION | NVIDIA GeForce GTX 1660
Crucial Ballistix Sport 64GB, DDR4-2400 | BE QUIET! PURE POWER 10 500W
Corsair Force Series MP500 120GB NVME | Corsair Force MP510 240GB NVME

Tante Google

Via Batch Dateien Löschen

Beitrag von Tante Google » 13.04.2022, 01:04


Ynnam

Re: Via Batch Dateien Löschen

Beitrag von Ynnam » 13.04.2022, 05:20

Könnte etwas dauern - habe (irgendwo) eine "fertige" cmd (mit Log-Erstellung) - baut in der Regel dann aber auf einen Profilnamen auf und einem temporärem Verzeichnis wo die eigentlichen Dateien dann erst gelöscht werden (in der Regel dann aber mit robocopy anstatt von del)

Ynnam

Re: Via Batch Dateien Löschen

Beitrag von Ynnam » 13.04.2022, 05:28

ALTERNATIV gibt es aber auch das portable Tool Cleanmgr++ , mit dem man anhand von Scriptdateien sich dieses Tool
( was bereinigt werden soll) anpassen kann

winkill
Profi
Profi
Beiträge: 194
Registriert: 09.05.2017, 03:56
Danke erhalten: 6 Mal

Re: Via Batch Dateien Löschen

Beitrag von winkill » 17.04.2022, 02:16

Hallo Ynnam,

meinst Du mit dem Log.txt ?
echo Loeschung der Dateien beginnt...
del C:\Temp\*.bak /f /q /s >> Log.txt
del C:\Temp\*.bk1 /f /q /s >> Log.txt
del C:\Temp\*.bk2 /f /q /s >> Log.txt
echo Loeschung abgeschlossen...

Bisher habe ich keine Lösung gefunden welche *.* löscht. Aber Dateien ohne Endung funktioniert noch nicht. Als Notlösung verwende ich das Verzeichnis löschen und es danach wieder zu erstellen. Wie gesagt als Notlösung.

rmdir /S /Q "C:\Temp"
mkdir "C:\Temp"

VG
winkill
Intel Xeon 1245V5 | Mainboard MSI C236A WORKSTATION | NVIDIA GeForce GTX 1660
Crucial Ballistix Sport 64GB, DDR4-2400 | BE QUIET! PURE POWER 10 500W
Corsair Force Series MP500 120GB NVME | Corsair Force MP510 240GB NVME

Ynnam

Re: Via Batch Dateien Löschen

Beitrag von Ynnam » 17.04.2022, 05:45

Kannst dir ja mal (meine) "alte" Lösung anschauen:
Versteckter Text:
@echo off
chcp 1252 >nul
net stop bits
net stop wuauserv

Echo ####################################################################################################################
Echo User-Logdatei wird auf dem Desktop erstellt - Erstellung eines temporären Verzeichnisses
Echo ####################################################################################################################
set log=%userprofile%\Desktop\0815.txt >nul
set l=C:\0815 >nul
md %l% >nul

@Echo #################################################################################################################### >%log%
Echo ####################################################################################################################
@Echo Von Benutzer: %Username% wurde auf PC: %Computername% eine erweiterte Datenträgerbereinigung gestartet! >>%log%
Echo Von Benutzer: %Username% wurde auf PC: %Computername% eine erweiterte Datenträgerbereinigung gestartet!
@Echo #################################################################################################################### >>%log%
Echo ####################################################################################################################
@Echo. >>%log%
@Echo Nachfolgend sind die einzelnen Bearbeitungschritte mit ihren Ergebnissen aufgeführt: >>%log%
@Echo. >>%log%

@Echo #################################################################################################################### >>%log%
Echo ####################################################################################################################
@Echo Den Ordner USER - TEMP bereinigen! >>%log%
Echo Das User-Temp-Verzeichnis wird bereinigt!
@Echo #################################################################################################################### >>%log%
Echo ####################################################################################################################
robocopy %l% %Temp% /mir >>%log%
@Echo. >>%log%


@Echo #################################################################################################################### >>%log%
Echo ####################################################################################################################
@Echo Den Downloadordner von Windows Update bereinigen! >>%log%
Echo Den Downloadordner von Windows Update bereinigen!
@Echo #################################################################################################################### >>%log%
Echo ####################################################################################################################
robocopy %l% C:\Windows\SoftwareDistribution\Download /mir >>%log%
@Echo. >>%log%


@Echo #################################################################################################################### >>%log%
Echo ####################################################################################################################
@Echo Den Ordner C:\Windows\Prefetch bereinigen! >>%log%
Echo Den Ordner C:\Windows\Prefetch bereinigen!
@Echo #################################################################################################################### >>%log%
Echo ####################################################################################################################
robocopy %l% C:\Windows\Prefetch /mir >>%log%
@Echo. >>%log%


@Echo #################################################################################################################### >>%log%
Echo ####################################################################################################################
@Echo Den temporären Patchordner des Installers bereinigen! >>%log%
Echo Den temporären Patchordner des Installers bereinigen!
@Echo #################################################################################################################### >>%log%
Echo ####################################################################################################################
robocopy %l% C:\Windows\Installer\$PatchCache$ /mir >>%log%
@Echo. >>%log%


@Echo #################################################################################################################### >>%log%
Echo ####################################################################################################################
@Echo Den Ordner C:\$Windows.~BT löschen! >>%log%
Echo Den Ordner C:\$Windows.~BT löschen!
@Echo #################################################################################################################### >>%log%
Echo ####################################################################################################################
rd /s /q C:\$Windows.~BT >>%log%
Echo NICH GEFUNDEN bedeutet Datei / Ordner wurde schon gelöscht / bereinigt !
@Echo. >>%log%


@Echo #################################################################################################################### >>%log%
Echo ####################################################################################################################
@Echo Den Ordner C:\$Windows.~WS löschen! >>%log%
Echo Den Ordner C:\$Windows.~WS löschen!
@Echo #################################################################################################################### >>%log%
Echo ####################################################################################################################
rd /s /q C:\$Windows.~WS >>%log%
Echo NICH GEFUNDEN bedeutet Datei / Ordner wurde schon gelöscht / bereinigt !
Echo ####################################################################################################################
@Echo. >>%log%


@Echo #################################################################################################################### >>%log%
Echo ####################################################################################################################
@Echo Die Datenträgerbereinigung ist nun abgeschlossen, der temporäre Ordner %l% wird gelöscht und das Script beendet! >>%log%
Echo Die Datenträgerbereinigung ist nun abgeschlossen, der temporäre Ordner %l% wird gelöscht und das Script beendet!
@Echo #################################################################################################################### >>%log%
Echo ####################################################################################################################
@Echo. >>%log%
rd /s /q %l% >>%log%
@Echo. >>%log%
net start bits
net start wuauserv
Echo ####################################################################################################################
pause

Lässt sich dann an eigene Bedürfnisse anpassen - in dem vorliegendem Beispiel ging es sich darum ( lange vor Cleanmgr+) systemrelevante Dateien (die irgendwo evtl. noch "rumfliegen") zu löschen, die ein Update verhindern (könnten)

Benutzeravatar
Holgi
Guru
Guru
Beiträge: 3092
Registriert: 12.05.2018, 12:33
Hat sich bedankt: 392 Mal
Danke erhalten: 506 Mal
Gender:

Re: Via Batch Dateien Löschen

Beitrag von Holgi » 17.04.2022, 09:41

oder vlt. einfach mal das hier probieren:

Code: Alles auswählen

del *. /f /q /s 
man achte auf den fehlenden Asterisk (oder wie das heißt) nach dem Punkt

oder so

Code: Alles auswählen

for /f "delims=" %%i in ('dir /s /b /a-d "C:\Temp\*."') do @echo del /f /q /s "%%i"
pause
solange das @echo da steht, wird nicht wirklich gelöscht!
for /f "delims=" %%i in ('dir /s /b /a-d "C:\Temp\*."') do del /f /q /s "%%i"
pause
löscht dann wirklich ohne Rückfrage!
Diese Zeile muss zusätzlich eingefügt werden, da Dateien mit Endung dadurch nicht gelöscht werden!
PDF24 angepasste Installation (nur PDF Druckertreiber) per Script: viewtopic.php?t=30284
Winget (Desktop App Installer) für Windows Versionen ohne Store installieren (HowTo): viewtopic.php?t=26214
Vorstellung: tiny11builder; Script zur Verschlankung von Windows 11: viewtopic.php?t=30134
Windows StartMenü Empfohlen (Recommended Section) komplett ausblenden: viewtopic.php?t=30574
Hyper-V VM per Script erstellen viewtopic.php?t=25114

Ynnam

Re: Via Batch Dateien Löschen

Beitrag von Ynnam » 17.04.2022, 11:19

"...oder vlt. einfach mal das hier probieren:"

könnte man mit der Batch von mir ( die ja nur als Beispiel dienen sollte, kombinieren. Auf die del-Befehle bin ich so nicht drauf eingegangen ;)

Ynnam

Re: Via Batch Dateien Löschen

Beitrag von Ynnam » 18.04.2022, 15:33

@winkill

Eines habe ich noch vergessen:
(Weil ich es an dem Tag auch erst per Zufall gefunden hatte)

Es gibt auch ein Programm / Tool dafür ( sogar portabel )
Beschreibung:

Delete.On.Reboot ist ein kleines und effektives Programm, mit dem nicht löschbare Dateien, Verzeichnisse und Unterordner auf elegante Weise beim Neustart eines Windows-Computers gelöscht werden können.
Zu finden auf: https://www.softwareok.de/?seite=Freewa ... .On.Reboot
Hat z.B. den "Vorteil" das man sich nicht mit irgendwelchen Rechten rumplagen muss, z.B. bei Programmen wo ein entsprechender Dienst mitläuft und das löschen diverser Dateien "verweigert" wird

Ynnam

Re: Via Batch Dateien Löschen

Beitrag von Ynnam » 19.04.2022, 07:06

"Bisher habe ich folgende Parameter verwendet:
echo
attrib C:\Temp\*.* -h -s -a -r
del C:\Temp\*.* /f /q /s
pause

Manchmal habe ich das Problem, dass im Verzeichnis Dateien sind welche einfach nicht gelöscht werden weil sie unter Umständen keine Dateiendung haben. Ich erhalte gelegentlich die Rückmeldung Datei nicht gefunden."

Nochmal von mir eine Anmerkung:
Bei "Ich erhalte gelegentlich die Rückmeldung Datei nicht gefunden." muss man mit leben, weil wenn keine entsprechende Datei da ist, kann auch keine gelöscht werden es sei denn: man baut VORHER Abfragen ( if exist *.... → Goto del usw. ) ein

Zu dem Del-Befehl ( allgemein ) würde ich eher auf den Erase Befehl "ausweichen"
Syntax (anhand eines Beispiel, selber so getestet)
erase /s /q /f /a:r /a:h M:\TEMP\*.ini
→ /a:r (Archivbit nur lesen)
→ /a:h (Archivbit versteckt)

winkill
Profi
Profi
Beiträge: 194
Registriert: 09.05.2017, 03:56
Danke erhalten: 6 Mal

Re: Via Batch Dateien Löschen

Beitrag von winkill » 20.04.2022, 01:30

Hallo,

funktioniert noch nicht. Ich habe es mit euren Parametern versucht.

echo
REM del C:\Windows\Temp\*. /f /q /s
del C:\Windows\Temp\*.*/f /q /s
REM erase C:\Windows\Temp\*.*
REM for /f "delims=" %%i in ('dir /s /b /a-d "C:\Windows\Temp\*."') do del /f /q /s "%%i"
REM erase /s /q /f /a:r /a:h C:\Windows\Temp\*.*
REM for /f "delims=" %%i in (dir /s /b /a-d "C:\Windows\Temp\*.") do del /f /q /s "%%i"
REM del C:\Windows\Temp\*.*/f /q /s
pause

Bis auf den nicht auskommentierten Befehl, werden die Dateien im Verzeichnis und Unterverzeichnis Dateien gelöscht. Der Ordner an sich leider nicht. Beim Erase Befehl fragt Windows: Möchten Sie "C:\Windows\Temp\*.*" löschen (J/N)?

Es wird dann die Datei im C:\Windows\Temp gelöscht, aber der Unterordner mit einer Datei drin nicht. Wenn ich eine *.txt ins Verzeichnis C:\Windows\Temp fragt Windows nach Admin Rechten und kopiert die Datei. Kann es daran liegen das dieser Ordner Systemrelevant ist?

Mein TMP und TEMP sowie die Auslagerungsdatei habe ich auf eine andere leeren NVME verlegt LW X:\, trotzdem legt Windows die Dateien in C:\Windows\Temp ab. Warum auch immer, selbst Firefox legt die Daten richtig auf der leeren NVME ab.

VG
winkill
Intel Xeon 1245V5 | Mainboard MSI C236A WORKSTATION | NVIDIA GeForce GTX 1660
Crucial Ballistix Sport 64GB, DDR4-2400 | BE QUIET! PURE POWER 10 500W
Corsair Force Series MP500 120GB NVME | Corsair Force MP510 240GB NVME

Benutzeravatar
DK2000
Legende
Legende
Beiträge: 10001
Registriert: 03.04.2018, 00:07
Hat sich bedankt: 222 Mal
Danke erhalten: 679 Mal
Gender:

Re: Via Batch Dateien Löschen

Beitrag von DK2000 » 20.04.2022, 05:56

Wenn Du den Ordner an sich löschen willst, dann musst Du das mit rmdir /s /q C:\Windows\Temp machen, entsprechende Rechte vorausgesetzt.

Allerdings kommt der Ordner wieder, genauso wie C:\Windows\SystemTemp.

Benutzeravatar
Holgi
Guru
Guru
Beiträge: 3092
Registriert: 12.05.2018, 12:33
Hat sich bedankt: 392 Mal
Danke erhalten: 506 Mal
Gender:

Re: Via Batch Dateien Löschen

Beitrag von Holgi » 20.04.2022, 08:12

winkill hat geschrieben: 20.04.2022, 01:30 wie kann ich mit einer Batch Datei aus einem Verzeichnis alle Dateien ohne Rückfrage löschen.
In der Ausgangsfrage hattest du auch noch nicht nach dem Löschen des Ordners, sondern nur nach dem Löschen der dort enthaltenen Dateien gefragt!!

Ich weiß jetzt nicht, ob das ein Darstellungsfehler in deinem Script ist, aber da fehlen auch einige Leerzeichen!
deins:

Code: Alles auswählen

echo
REM del C:\Windows\Temp\*. /f /q /s
del C:\Windows\Temp\*.*/f /q /s
REM erase C:\Windows\Temp\*.*
REM for /f "delims=" %%i in ('dir /s /b /a-d "C:\Windows\Temp\*."') do del /f /q /s "%%i"
REM erase /s /q /f /a:r /a:h C:\Windows\Temp\*.*
REM for /f "delims=" %%i in (dir /s /b /a-d "C:\Windows\Temp\*.") do del /f /q /s "%%i"
REM del C:\Windows\Temp\*.*/f /q /s
pause
korrekt wäre:

Code: Alles auswählen

echo
REM del C:\Windows\Temp\*. /f /q /s
del C:\Windows\Temp\*.* /f /q /s
REM erase C:\Windows\Temp\*.*
REM for /f "delims=" %%i in ('dir /s /b /a-d "C:\Windows\Temp\*."') do del /f /q /s "%%i"
REM erase /s /q /f /a:r /a:h C:\Windows\Temp\*.*
REM for /f "delims=" %%i in (dir /s /b /a-d "C:\Windows\Temp\*.") do del /f /q /s "%%i"
REM del C:\Windows\Temp\*.* /f /q /s
pause
PDF24 angepasste Installation (nur PDF Druckertreiber) per Script: viewtopic.php?t=30284
Winget (Desktop App Installer) für Windows Versionen ohne Store installieren (HowTo): viewtopic.php?t=26214
Vorstellung: tiny11builder; Script zur Verschlankung von Windows 11: viewtopic.php?t=30134
Windows StartMenü Empfohlen (Recommended Section) komplett ausblenden: viewtopic.php?t=30574
Hyper-V VM per Script erstellen viewtopic.php?t=25114

winkill
Profi
Profi
Beiträge: 194
Registriert: 09.05.2017, 03:56
Danke erhalten: 6 Mal

Re: Via Batch Dateien Löschen

Beitrag von winkill » 22.04.2022, 23:00

Hallo,
@DK2000 Funktioniert der Ordner wird gelöscht. Kommt aber nicht wieder. Daher nehme ich danach mkdir "C:\Windows\Temp"
@Holgi Habe ein bisschen rumgebastelt, daher die fehlenden Leerzeichen
Danke euch beiden.
VG
winkill
Intel Xeon 1245V5 | Mainboard MSI C236A WORKSTATION | NVIDIA GeForce GTX 1660
Crucial Ballistix Sport 64GB, DDR4-2400 | BE QUIET! PURE POWER 10 500W
Corsair Force Series MP500 120GB NVME | Corsair Force MP510 240GB NVME

Antworten