Forum
Tipps
News
Menu-Icon

Größten Platzverschwender mit Kommandozeilentool finden

Hallo,
kennt Jemand ein Tool für die Kommandozeile, mit dem ich die größten Platzverschwender finde?



Antworten zu Größten Platzverschwender mit Kommandozeilentool finden:

Findet google dazu nichts?

Ich würde TuneUp Utilitys 2009 herunterladen. Das kann man 30 Tage uneingeschränkt nutzen und in diesem Programmpaket gibt es das Tool TuneUp Disk Space Explorer. Dieser zeigt dir sehr schön an wie groß was ist und sortiert Pfad für Pfad auf welcher Ordner/ Datei die größten Speicherfresser sind.

Ein vernünftiger Blick in die Systemsteuerung unter "Programme und Funktionen" täte es auch.

Ich glaube, das weiß er schon. Was er sucht, ist ein Befehl in der Kommandozeile, also etwa so wie

%SystemRoot%\system32\diskmgmt.msc /s

Das öffnet die Datenträgerverwaltung.
Aber zur Speicherbelegung von einzelnen Programmen oder Ordnern gibt es glaube ich keinen direkten Befehl.
Nettes Programm dazu: TreeSize-Free

C.

Soo.. habe nun eine eigene Lösung mit dem Tool disksum.exe erstrickt.
@sebnator und idefix : Das ist natürlich nicht wirklich das, was ich gesucht habe.

Hier meine Lösung:

Man lade sich das Tool disksum. Erstellt eine result.log im gleichen Verzeichnis und erstellt sich ein Batch File, ebenfalls im gleichen Ordner,  mit folgendem Inhalt:


 

Zitat
@echo off
REM Dieses Script prüft eine Partition auf die größten Verzeichnisse.

@echo Bitte die zu überprüfende Partition angeben (C,D,E....)
set /p X=

set AKT_VERZEICHNIS="%cd%"

xcopy /E /H /R /K /Y  disksum.exe %X%:\
xcopy /E /H /R /K /Y  result.log %X%:\
cd %X%:\
%X%:\disksum.exe > %X%:\result.log
type %X%:\result.log > %AKT_VERZEICHNIS%\result.log

del %X%:\result.log
del %X%:\disksum.exe
rd runtime
 
 

Irgendwie habe ich wohl Matsch auf den Augen.

Was passiert, wenn du als Laufwerk C: eingibst?

Wann wird das Verzeichnis "runtime" erstellt?

Wieso ist es egal, auf was der prompt gerade zeigt?

Der CD-Befehl ist syntaktisch falsch. M.E. müsste das heissen:

%X%:
cd \
 

« Letzte Änderung: 27.05.09, 11:46:15 von cottonwood »

 

Zitat
Irgendwie habe ich wohl Matsch auf den Augen.
Das kann ich von hier aus nicht beurteilen  ;)

 
Zitat
Was passiert, wenn du als Laufwerk C: eingibst?
Dann wird die Variable X gleich "c" gesetzt. Ich gebe übrigens "c" nicht "c:" ein.
 
Zitat
Wann wird das Verzeichnis "runtime" erstellt? 
Das Verzeichnis runtime wird von disksum bei jeder Ausführung erstellt, auch wenn mir noch nicht klar ist wofür.
 
Zitat
Wieso ist es egal, auf was der prompt gerade zeigt?
Weil sich das Batch File mit dem Inhalt zu Beginn im gleichen Verzeichnis befindet, wie die disksum.exe und result.log. Und von hier aus, (Egal wo) rufe ich meine Batch Datei auf.
 
Zitat
Der CD-Befehl ist syntaktisch falsch. M.E. müsste das heissen:

%X%:
cd \
Nein ist er nicht. Bei X handelt es sich ja um eine Variable. In deinem Beispiel um c. Man könnte es aber natürlich auch mit "cd \" in dieser einen Zeile machen.

Also okay. Ich habe Matsch auf den Augen. ;)

Aber das mit dem CD-Befehl funzt bei mir nicht:

Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Dokumente und Einstellungen\User>set /p x=
c

C:\Dokumente und Einstellungen\User>cd %X%:\

C:\>set /p x=
d

C:\>cd %X%:\

C:\>%X%:

D:\>
« Letzte Änderung: 27.05.09, 12:28:49 von cottonwood »

Hmmm..... das Script funktioniert, aber anscheinend nur für die C Partition. Habe es gerade mit "D" probiert und da scheiterts bei mir genauso wie bei dir..... wenn ich Zeit habe, kann ich mir das genauer ansehen. 

M.E. müsste es so aussehen:

@echo off
REM Dieses Script prüft eine Partition auf die größten Verzeichnisse.

@echo Bitte die zu überprüfende Partition angeben (C,D,E....)
set /p X=

set AKT_VERZEICHNIS="%cd%"

xcopy /E /H /R /K /Y  disksum.exe %X%:\
xcopy /E /H /R /K /Y  result.log %X%:\
%X%:
cd \
%X%:\disksum.exe > %X%:\result.log
type %X%:\result.log > %AKT_VERZEICHNIS%\result.log

del %X%:\result.log
del %X%:\disksum.exe
rd runtime

Yep...so klappts. Ich würde noch anstatt "rd runtime" "rd %X%:\runtime" eintragen. Resultiert aber natürlich aus dem ersten Eintrag.
Dennoch wundert es mich , warum "cd %X%:\" bei C klappt und bei anderen nicht.

Weil er einfach den Laufwerksbuchstaben nicht ändern muss. Von D: auf C: wechseln würde ganz sicher auch nicht gehen.   

Fällt Jemand (Cootonwood  ;) ) eventuell noch ein Gedanke zum Filtern des Ergebnisses?? So dass beispielsweise nur die Zeilen angezeigt, wo größere Verzeichnisse gefunden, die größer als 100MB sind.

Die einzige Möglichkeit, die mir momentan einfällt, ist der EDT, den ich noch vom BS2000 her kenne.
Den gibt es mittlerweile als EDTW (kostenpflichtig) auch für Windows: http://www.opg.de/produkte/opgcom.html

Das ist der mächtigste Dateibearbeiter, den ich kenne. Ich sage einfach mal, dass der alles kann, was auch immer man mit einer Datei anstellen will. Solange es sich nicht um Binärdateien handelt.

Das dauert aber etwas. ;) Ich melde mich wieder. 

Es ist mir schon klar, dass das Programm für diese Aufgabe zu teuer ist. Andererseits darf man es ja auch erst mal testen. Und diese Art von Bereinigung macht man ja auch nicht ständig.

Hier der Aufruf des Programms aus einer .bat:

c:\programme\opg\edtw\edtw.exe -i rumak.proc.txt

Hier der Inhalt der Datei rumak.proc.txt, die den Ablauf steuert:

@read'c:\temp\rumak.txt'
@pro2
@@proc
@@on!:1-30:f'('
@@if.true.goto lab02
@@d!
@@goto lab99
@@:lab02
@@on!:30-30:f'('
@@if.t.goto lab99
@@pre!w'0'
@@goto lab02
@@:lab99
@end
@pro3
@@proc
@@:lab02
@@on!:1-1:f'0'
@@if.f.goto lab99
@@d!:1-1
@@goto lab02
@@:lab99
@end
@do2!=1,$
@sort d
@do3!=1,$
@write'c:\temp\rumak.result.txt'o
@halt

Dabei werden Zeilen mit @@ um einen @ reduziert einfach nur in die Prozedur eingefügt. ::)
Das bedeutet, dass beim 1. @end die Prozedurebene 2 folgenden Inhalt hat (allerdings ohne Kommentare):
@proc
/* suche in Spalte 1-30 der akt. Zeile nach '(' */
@on!:1-30:f'('
/* Wenn gefunden gehe zu lab02 */
@if.true.goto lab02
/* lösche die akt. Zeile (weil sie nicht zum Ergebnis gehört) */
@d!
/* Und weiter mit der nächsten Zeile, falls vorhanden */
@goto lab99
@:lab02
/* Suche in Spalte 30 nach "(" */
@on!:30-30:f'('
/* wenn gefunden weiter mit nächster Zeile */
@if.t.goto lab99
/* Für den Sort führende Null einfügen */
@pre!w'0'
/* Und das alles so lange, bis die "(" in Spalte 30 angekommen ist */
@goto lab02
@:lab99

Beim 2. @end ist die Prozedurebene 3 definiert. Die Prozedur da drinnen wirft die führenden Nullen wieder raus.

Und hier geht's überhaupt erst los mit der Verarbeitung:

/* Der Aufruf führt die Prozedurebene 2 aus,
     wobei ! eine Variable ist, die nacheinander den Wert 1, 2, 3,...
     bis zur höchsten Zeilennummer ($) annimmt. Implizite Schrittweite ist 1 */
@do2!=1,$
/* Sortierung d=absteigend */
@sort d
/* Führende Nullen wieder rauswerfen */
@do3!=1,$
@write'c:\temp\rumak.result.txt'o
@halt
« Letzte Änderung: 29.05.09, 18:55:57 von cottonwood »

« Win XP: Bildschirm bleibt nach dem Hochfahren schwarzWindows XP: die resolution notice tritt stets bei spielen wie age of empire oder »
 

Fremdwörter? Erklärungen im Lexikon!
Blu Ray Disk
Nachfolger der DVD. Statt wie bei CD und DVD werden die Disks mit blauem Laser abgetastet, das ermöglicht noch feinere Datenstrukturen und resultiert in einer gr&oum...

Diskette
  Die Diskette (früher auch Floppy oder Floppy-Disk genannt) ist ein magnetischer Datenträger, der auf dem gleichen Speicherprinzip beruht wie die Festp...

Harddisk
Hard-Disk, auch HDD für Hard Disk Drive, ein Speichermedium für PCs und andere Geräte, wie zum Beispiel Spielekonsolen. Siehe Festplatte....



Windows 98: Scandisk
Dateien unter Windows kopieren (Win XP bis Win 11!)
Windows 7: Screenshot machen
Programme löschen unter Windows 11
Windows 11 Screenshot + Bildschirm-Video!
Neue Copilot Taste für Windows-PCs!
Windows 10+11 RICHTIG herunterfahren (Hard Reset)!