Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Dateien aus best. Verzeichnis mit der Grösse 0 KB löschen

Mitglied: buxi

buxi (Level 1) - Jetzt verbinden

11.09.2006, aktualisiert 12.09.2006, 15585 Aufrufe, 8 Kommentare

Datei Löschscript für Dateien mit weniger als 1 kB oder genau 0 KB

Hallo liebes Administratoren.de-Team,

ich habe folgende Frage:
Wie kann ich unter Windows NT4/2000/Xp/2003 mit den Bordmitteln (Kommandozeile)
dieses Problem lösen.
Es sollen in einem bestimmten Verzeichnis die Dateien mit einer Grösse von 0 (KB, B) ermittelt und dann gelöscht werden.
Vieleicht ist es auch leichter, zu definieren Dateien mit weniger als 1 (KB,B) ?
Mit DIR kann ich nur sortieren und anzeigen lassen.

Danke für eure Unterstützung vorab.

Gruß
Buxi
Mitglied: Metzger-MCP
11.09.2006 um 13:13 Uhr
Du kannst das mit einer Batchdatei lösen.

Verzeichnisse größensortiert mit dem dir Befehl in eine Txt Datei schreiben.
Aus dieser Datei kannst du dann die 0KB Biester mit einer Forschleife extrahieren
in eine 2. TXT. Im Anschluß kannst du mit einer Forschleife die Datein löschen.

Da kann ich dir aber auch eine fertige Batchdatei zusenden geben.

MFG Metzger

Edit

Datei inhalt ohne Gewähr.
@echo off
echo. > dir1.txt
echo. > dir2.txt
echo. > dir3.txt
dir /OGS *.* > dir1.txt
for /F "eol=; tokens=1,2,3,4* delims= " %%i in (dir1.txt) do echo %%k %%l >> dir2.txt
for /F "eol=; tokens=1,2,3,4* delims= " %%i in (dir2.txt) do if /i %%i EQU 0 echo %%i %%j >> dir3.txt

rem for /F "eol=; tokens=1,2,3,4* delims= " %%i in (dir2.txt) do if /i %%i EQU 0 echo %%j >> dir3.txt
rem for /F "eol=; tokens=1,2,3,4* delims= " %%i in (dir3.txt) do del %%i

So wie die Datei oben ersichtlich ist, protokoliert sie in DIR3.txt alle Datein die gelöscht werden würden.

Wird vor der 2te Forschleife ein rem gesetzt und bei den unteren beiden Rem entfernt, so löscht sie alle 0KB augenblicklich. Die Protokolierung bleibt erhalten.
Bitte warten ..
Mitglied: Biber
11.09.2006 um 13:15 Uhr
Moin buxi,

vom CMD-Prompt aus:

01.
@for /R D:\temp\Backup1 %i in (*.*) do @if %~zi==0 del %i
...würde alles im Verzeichnis D:\temp\Backup1 und darunter löschen, was 0-Byte-Größe hat.
Wenn Du nicht in allen Verzeichnissen unterhalb löschen willst, musst Du noch eine Zusatzbedingung anhängen, ob denn die gefundene Datei auch im Verzeichnis, das vorn in der ersten Klammer steht, gefunden wurde.

01.
@for /R D:\temp\Backup1 %i in (*.*) do @if %~zi==0 if /i %~dpi==D:\temp\Backup1\ del %i
Als Batch mit einem Parameter "NameDesVerzeichnisses" sähe das so aus:
01.
::-------snipp Del0Files.bat 
02.
@for /R %1 %%i in (*.*) do @if %%~zi==0 @if /i [%%~dpi]==[%1\] echo del %%i 
Richtigerweise würde der Oneliner bei mir folgende 0-Byte-Datei finden:
01.
>f:\Del0Files.bat d:\temp\Backup1 
02.
del d:\temp\Backup1\AdobeWeb.log
Zum Test macht der Batch nur ein "echo del ..." ; zum Scharfmachen das Wort "echo" löschen.


Gruß
Biber
Bitte warten ..
Mitglied: buxi
11.09.2006 um 17:03 Uhr
Hallo Biber,

habe den 3. Teil ( mit Parameterübergabe )deiner Batch-Exkursion ausprobiert. Dieser funktioniert.
Leider bekomme ich bei Ausführung der 2. Batch :
@for /R D:\temp\Backup1 %i in (*.*) do @if %~zi==0 if /i %~dpi==D:\temp\Backup1\ del %i
-----folgende Fehlermeldung:
Die folgende Verwendung des Pfadoperators zur Ersetzung eines Batchparameters
ist ungültig: %~dpi==D:\temp\Backup1\ del %i
Hast Du eine zündende Idee ?
Ich habe mir die FOR-Synthax angeschaut (muss mich allerdings noch etwas damit beschäftigen) und ad-hoc keinen Fehler entdecken können.
Danke Dir für eine Antwort.

Gruß
buxi
Bitte warten ..
Mitglied: Biber
11.09.2006 um 17:34 Uhr
Moin buxi,

ja, ist erklärlich.
Der zweite Oneliner war gar nicht als Batch gedacht, sondern auch noch als Versuch am CMD-Prompt.
Da liefert genau diese Zeile (nur wieder mit "echo del" statt "del" am Ende):
--am CMD-Prompt:--
01.
>@for /R D:\temp\Backup1 %i in (*.*) do @if %~zi==0 if /i %~dpi==D:\temp\Backup1\ echo del %i 
02.
del D:\temp\Backup1\AdobeWeb.log
Als Oneliner-Batch müssen alle Zählvariablen (also die %i, %~dpi, %~zi) jewils mit 2 %%-Zeichen geschrieben werden.
Also wäre diese CMD-Anweisung oben als Batch so (siehe unten) zu schreiben:
01.
::---snipp Der2teOneliner.bat 
02.
@for /R D:\temp\Backup1 %%i in (*.*) do @if %%~zi==0 if /i %%~dpi==D:\temp\Backup1\ echo del %%i
... aber der wäre ja als Batch zu unflexibel, weil er sich ja immer nur auf das Verzeichnis "D:\temp\Backup1" bezieht.
Deshalb war dann ja als einzige Batch-Variante die 3. Fassung, die mit einem beliebigen Verzeichnis als Parameter herausgekommen.

Gruß
Biber
Bitte warten ..
Mitglied: buxi
11.09.2006 um 17:47 Uhr
Moin Biber, und Metzger ,

danke, danke sehr für die Hilfe. Langsam erschliesst sich mir die FOR-usability.
Werde mich in der nächsten Zeit mal aktiver hier beteiligen - give and take.

Thanks a lot.
Bitte warten ..
Mitglied: buxi
11.09.2006 um 19:31 Uhr
Hallo Biber,

ich habs nochmals durchgetestet.
Kleines Problem jetzt:
Wenn in dem Verzeichnis, in welchem die zu löschenden Dateien liegen,
eine Datei mit einem Leerzeichen z. B. "Neu Worddokument.doc" etc. liegt,
dann bekomme ich eine Fehlermeldung (liegt wohl am Space dazw. ).
f: \Neu konnte nicht gefunden werden
f: \Wordokument.doc konnte nicht gefunden werden.
Diese wird dann nicht gelöscht.
Kann man das elegant umgehen ?
Hochkommatas und /Q funzen da wohl nicht.

Brainstoooorming ..

Gruß
Buxi
Bitte warten ..
Mitglied: Biber
11.09.2006 um 20:49 Uhr
Moin buxi,
ja, das geht noch relativ stressarm.
Einfach das %%i nach dem "del" in Hochkommas setzen.

Aber: --> 2 oder 3 Fälle sind noch nicht abgefangen:
a) es kann ja Pfade mit Leerzeichen im Namen geben. Dazu muss auch der Parameter 1 bzw. die Prüfung leerzeichentauglich gemacht werden
01.
::-------snipp Del0Files.bat 
02.
@for /R %1 %%i in (*.*) do @if %%~zi== 0 @if /i "%%~dpi"=="%~1\" @echo del "%%i" 2>nul
b) Gerade bei diesen 0-Byte-Dateien sind einige "in Gebrauch" oder ReadOnly oder schlicht nicht löschbar. Dazu würde ich noch ans Ende der Zeile ein "2>nul" stellen.
Auf Deutsch: Unterdrücke Fehlermeldungen.

c) okay, Faulheit... ich prüfe ja nicht mal, ob ein Parameter übergeben wurde.
Ist also nicht gerade ein Schnipsel, den ich irgendeinem Uneingeweihten schenken würde.
Dir Prüfung sollte (wenn es als Batch irgendwo gespeichert werden soll) schon rein.


Auch wenn sich dadurch die Zeilenzahl langfristig verdoppeln sollte..
01.
::-------snipp Del0Files.bat 
02.
@if not [%1]==[] @for /R %1 %%i in (*.*) do @if %%~zi== 0 @if /i "%%~dpi"=="%~1\" @echo del "%%i" 2>nul
Gruß
Biber
P.S. Wer jetzt die ganze Geschichte mitgelesen hat, versteht jetzt eine ganz schön kryptische Batchzeile.
Die dürfte man/frau aber auch normalerweise niemandem vor dem Frühstück anbieten.
Bitte warten ..
Mitglied: Metzger-MCP
12.09.2006 um 11:11 Uhr
Gruß
Biber
P.S. Wer jetzt die ganze Geschichte mitgelesen hat, versteht jetzt eine ganz
schön kryptische Batchzeile. Die dürfte man/frau aber auch normalerweise niemandem
vor dem Frühstück anbieten.

he he ja so ist das ! Wer in den Rechner schaut bevor er ein Muntermacher genommen hat ist selber schuld ! aber abends ( 21:00 ) ist das ja noch so gerade verdauenbar.

Dieser kommentar kann gefahrlos überlesen werden.
MFG Metzger
Bitte warten ..
Ähnliche Inhalte
Windows 7
0 KB dateien automatisch löschen
Frage von amgm2006Windows 75 Kommentare

Guten Morgen, ich habe hier ein System, das tausende von 0 kb Dateien enthält. Zu bereinigen sind 4 Laufwerke ...

Windows Server
PDF-Dateien auf einmal mit 0 kB
gelöst Frage von AkcentWindows Server9 Kommentare

Hallo, mir fällt seit ein paar Wochen auf, dass PDF-Dateien, die ich aus meinem Mail-Client in einen Windows Dateiordner ...

Windows 7

TXT-Datei plötzlich 0 KByte groß

gelöst Frage von SebastianJuWindows 715 Kommentare

Hallo, ich hatte eine TXT-Datei in Bearbeitung als der Festplattenspeicher auf 0 Byte ging. Aus irgendeinem Grund total voll ...

Batch & Shell

Alle Dateien in Verzeichnis und Unterverzeichnissen löschen, mit Ausnahme aller.txt-Dateien

gelöst Frage von tegwertBatch & Shell5 Kommentare

Hallo zusammen! Ich habe zum löschen aller Dateien in bestimmten Verzeichnissen und dessen Unterverzeichnissen folgende Batchzeile erstellt: Dabei muss ...

Neue Wissensbeiträge
Windows Update

Neue Version KB4099950 NIC Einstellungen gehen verloren

Information von sabines vor 5 StundenWindows Update

Es ist eine neue Version des KB4099950 verfügbar, die das Problem mit den verlorenen Netzwerkeinstellungen lösen soll. Das Datum ...

Microsoft Office

MS Office 2019 ohne OneNote - OneNote App speichert nur in Cloud

Information von Deepsys vor 15 StundenMicrosoft Office2 Kommentare

Microsoft zeigt deutlich wohin alles bei Ihnen geht, OneNote 2019 wird es nicht mehr geben, und die Windows 10 ...

Humor (lol)

Warum man sein Gast-WLAN nicht beliebig nennen sollte

Erfahrungsbericht von Henere vor 1 TagHumor (lol)5 Kommentare

Servus, mal was aus dem Alltag. Zu Hause. Eigentlich wollte ich nur einen weiteren WLAN-AP ins Netz bringen, damit ...

Sicherheit

Schwachstelle in Intel SPI Flash Firmware kann manipuliert werden

Information von sabines vor 2 TagenSicherheit

Es existiert ein Problem in einigen Intel Chipsätzen, das durch einen lokalen Angreifer genutzt werden könnte. Die Firmware befindet ...

Heiß diskutierte Inhalte
Off Topic
1st , 2nd Level Support Techniker - Patchfeld und Switche etc.
Frage von pixel0815Off Topic30 Kommentare

Moin zusammen, ich weiß gar nicht ob es hier richtig ist, aber mich würde mal interessieren wie ihr das ...

Windows Netzwerk
LAN nur 10MB pro s trotz gb lan
Frage von tsunamiWindows Netzwerk19 Kommentare

Hallo zusammen, ich brauche mal wieder einen Anstoß in die richtige Richtung. Ich habe einen Windows 10 pc mit ...

Festplatten, SSD, Raid
Server SSD: NVMe PCIe 3.0 RAID?
Frage von bouneeFestplatten, SSD, Raid14 Kommentare

Hallo liebe Admins, mir stellt sich gerade die Frage, ob ein neuer Server mit SSD NVMe PCIe 3.0 Sinn ...

Windows 10
Windows 10 Startmenü-Einstellungen Systemweit festlegen
Frage von flotautWindows 1013 Kommentare

Guten Morgen liebe Admins, wir möchten bei uns am Lehrstuhl demnächst auf Windows 10 umsteigen. Wir installieren unsere PC's ...