Gibt es eine Möglichkeit, den freien Speicherplatz einer Festplatte oder eines Ordners in einem CMD abzurufen, ohne Anwendungen von Drittanbietern installieren zu müssen?
Ich habe ein CMD, das eine große Datei in ein bestimmtes Verzeichnis kopiert und natürlich die Rückgabe der Fehlerstufe aus dem Kopierbefehl verwenden könnte, aber dann muss ich auf die Zeit warten, die zum Kopieren der Datei benötigt wird (z. B. ... dann die Die Festplatte ist voll und der Kopiervorgang schlägt fehl.
Ich würde gerne wissen, bevor ich mit dem Kopieren beginne, ob es überhaupt eine Idee ist. Versuchte das Dienstprogramm DU.EXE von Sysinternals, aber das zeigt nur belegten Speicherplatz.
Antworten:
Wenn du läufst "
dir c:\
" , erhalten Sie in der letzten Zeile den freien Speicherplatz.Edit: Bessere Lösung: "
fsutil volume diskfree c:
"quelle
dir ..*
(oderdir c:\thing\..*
) eine sehr kurze Liste an, unabhängig davon, ob sich null oder viele Dateien im Verzeichnis befinden oder nicht.Eine mögliche Lösung:
eine " fortschrittlichere Lösung " für Windows XP und darüber hinaus:
Das WMIC-Tool ( Windows Management Instrumentation Command Line ) (Wmic.exe) kann umfangreiche Informationen zu Windows Server 2003 sowie Windows XP oder Vista erfassen. Das Tool greift mithilfe der Windows Management Instrumentation (WMI) auf die zugrunde liegende Hardware zu. Nicht für Windows 2000.
Wie von Alexander Stohr in den Kommentaren bemerkt :
dir
' den Job noch machen wird),dir
' ist vom Gebietsschema abhängig.quelle
@FOR /F "tokens=2 delims==" %%S IN ('wmic /NODE:"%COMPUTERNAME%" LogicalDisk Where ^(DriveType^="3" and DeviceID^="%some_folder:~0,2%"^) Get FreeSpace /VALUE') DO @SET freespace=%%S
fsutil
Administratorrechte benötigt habe, um überhaupt ausgeführt zu werden, unabhängig davon, was Sie damit machen.Mit diesem Befehl können Sie alle Partitionen, Größe und freien Speicherplatz finden:
wmic logicaldisk get size, freespace, caption
quelle
Sie können die Kommas vermeiden, indem Sie im Befehl DIR / -C verwenden.
Wenn Sie den verfügbaren Speicherplatz mit dem benötigten Speicherplatz vergleichen möchten, können Sie Folgendes tun. Ich habe die Zahl mit Tausendertrennzeichen angegeben und sie dann entfernt. Es ist schwierig, die Zahl ohne Komma zu erfassen. Das SET / A ist nett, aber es funktioniert nicht mehr mit großen Zahlen.
quelle
Das folgende Skript gibt Ihnen freie Bytes auf dem Laufwerk:
Beachten Sie, dass dies von der Ausgabe Ihres
dir
Befehls abhängt, für den die letzte Zeile den freien Speicherplatz des Formats benötigt24 Dir(s) 34,071,691,264 bytes free
. Speziell:for
Schleife , um die Zeile explizit zu erkennen, anstatt sich auf die Einstellung zu verlassenbytesfree
für jede Zeile zu verlassen).tokens=
Bit , um ein anderes Wort zu erhalten).,
Zeichen (oder Sie können die Ersetzung von Komma in etwas anderes ändern).Der Umgebungsnamespace wird nicht verschmutzt, sondern nur die
bytesfree
Variable beim Beenden festgelegt. Wenn Ihredir
Ausgabe unterschiedlich ist (z. B. unterschiedliche Gebietsschema- oder Spracheinstellungen), müssen Sie das Skript anpassen.quelle
df.exe
Zeigt alle Ihre Festplatten an; Gesamtkapazität und freie Kapazität. Sie können die Ausgabe über verschiedene Befehlszeilenoptionen ändern.
Sie können es von http://www.paulsadowski.com/WSH/cmdprogs.htm , http://unxutils.sourceforge.net/ oder woanders erhalten. Es ist ein Standard-Unix-Util wie du.
df -h
zeigt den gesamten verwendeten und verfügbaren Speicherplatz Ihres Laufwerks an. Beispielsweise:Cygwin ist kostenlos erhältlich unter: https://www.cygwin.com/ Es fügt der Eingabeaufforderung viele leistungsstarke Tools hinzu. Um nur den verfügbaren Speicherplatz auf Laufwerk M zu erhalten (wie in Windows einem freigegebenen Laufwerk zugeordnet), können Sie Folgendes eingeben:
quelle
Mit der exzellenten Lösung von paxdiablo habe ich ein etwas ausgefeilteres Batch-Skript geschrieben, das den Laufwerksbuchstaben als eingehendes Argument verwendet und prüft, ob das Laufwerk auf knifflige (aber nicht schöne) Weise vorhanden ist:
note1: Sie können einen einfachen Buchstaben (z. B. x) eingeben oder das Format x: oder x: \ als Laufwerksbuchstaben im Argument verwenden
note2: Das Skript zeigt stderr von% chkfile% nur an, wenn die Größe größer als 0 ist
note3: Ich habe dieses Skript als freedisk.cmd gespeichert (siehe Verwendung)
quelle
Ich mache eine Variation, um dies aus dem Skript zu generieren:
volume C: - 49 GB total space / 29512314880 byte(s) free
Ich benutze diskpart , um diese Informationen zu erhalten.
quelle
Ist cscript eine Drittanbieter-App? Ich empfehle Microsoft Scripting , bei dem Sie eine Programmiersprache (JScript, VBS) verwenden können, um beispielsweise den verfügbaren Speicherplatz aufzulisten .
Die Skriptinfrastruktur ist in allen aktuellen Windows-Versionen (einschließlich 2008) vorhanden.
quelle
cscript
ist Microsoft Scripting. Dies ist die Konsolenversion des Windows-Skriptinterpreters (wscript
ist die GUI-Version).