Fsutil - in batchdatei einbinden
Hallo,
Sorry, ich schon wieder.
Komm leider wieder nicht weiter:
Mein Vorhaben:
mit fsutil sollen einmal die lokalen Laufwerke und die entsprechenden freien Speicher ausgelesen werden.
Da fsutil beides jeweils anscheinend nur einzeln auslesen kann, muß man die ausgelesenen Werte in eine Datei Zwischenspeichern und zum Schluß wieder richtig zusammenführen.
Ich mußte leider auf fsutil zurückgreifen, da ich seit neuem die Vorgabe habe, den freien Speicher in Byte anzeigen zu lassen, die Umrechnung des freien Speichers (über PHP mit 1024er Blockgröße) von Terrabyte/Gigabyte auf Byte wird leider zu ungenau.
Danke im Voraus !
Gruß
Backspace
Sorry, ich schon wieder.
Komm leider wieder nicht weiter:
set fixed=%temp%\fixed.txt
for /f %%a in ('fsutil fsinfo drives') do fsutil fsinfo drivetype %%a |find "Eingebautes" >>%fixed%
for /f %%b in ('fsutil fsinfo drivetype %%a |find "Eingebautes') do fsutil volume diskfree %%b >>%fixed%
for /f "tokens=*" %%b in (fixed.txt) do wget -q "http:........"
Mein Vorhaben:
mit fsutil sollen einmal die lokalen Laufwerke und die entsprechenden freien Speicher ausgelesen werden.
Da fsutil beides jeweils anscheinend nur einzeln auslesen kann, muß man die ausgelesenen Werte in eine Datei Zwischenspeichern und zum Schluß wieder richtig zusammenführen.
Ich mußte leider auf fsutil zurückgreifen, da ich seit neuem die Vorgabe habe, den freien Speicher in Byte anzeigen zu lassen, die Umrechnung des freien Speichers (über PHP mit 1024er Blockgröße) von Terrabyte/Gigabyte auf Byte wird leider zu ungenau.
Danke im Voraus !
Gruß
Backspace
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 157149
Url: https://administrator.de/forum/fsutil-in-batchdatei-einbinden-157149.html
Ausgedruckt am: 17.04.2025 um 15:04 Uhr
7 Kommentare
Neuester Kommentar
Hallo Backspace!
Bedingt durch die Beschränkungen der CMD-Arithmetik (nur ganzzahlig, max 32-Bit-Werte) könntest Du das nur etwa so versuchen:
Den freien Speicher in Prozent erhältst Du übrigens mit
- Deine Formel würde den Prozentsatz für den belegten Speicherplatz liefern.
Für die Berechnung im Batch wird mit auf 1.000 Byte abgerundeten Werten gerechnet, indem vom freien Speicherplatz die letzten 3 Stellen weggelassen werden und vom Gesamtspeicher die letzten 5 Stellen - entspricht dann also der Formel
Grüße
bastla
P.S.: Was spricht eigentlich gegen die Verwendung von VBS (einen entsprechenden Ansatz hattest Du ja bereits)?
Bedingt durch die Beschränkungen der CMD-Arithmetik (nur ganzzahlig, max 32-Bit-Werte) könntest Du das nur etwa so versuchen:
@echo off & setlocal enabledelayedexpansion
for /f "tokens=1,4,5" %%a in ('"wmic logicaldisk get caption,description,freespace,size"^|findstr Festplatte') do (
set Free=%%b
set Size=%%c
set /a Pct=!Free:~,-3!/!Size:~,-5!
echo %%a %%b !Pct!
)
freespace / size * 100
Für die Berechnung im Batch wird mit auf 1.000 Byte abgerundeten Werten gerechnet, indem vom freien Speicherplatz die letzten 3 Stellen weggelassen werden und vom Gesamtspeicher die letzten 5 Stellen - entspricht dann also der Formel
freespace / (size / 100)
Grüße
bastla
P.S.: Was spricht eigentlich gegen die Verwendung von VBS (einen entsprechenden Ansatz hattest Du ja bereits)?
Hallo Backspace!
Ändere das "
analysierst, wirst Du hoffentlich feststellen können, welche "
Grüße
bastla
Ändere das "
echo off
" auf "echo on
" und starte den Batch aus einem CMD-Fenster - dann siehst Du, welcher Wert nicht zugewiesen wird, und wenn Du dann noch die Ausgabe vonwmic logicaldisk get caption,description,freespace,size
tokens
" bei Deiner (leider nicht genannten) Windows-Version benötigt werden (unter XP SP3 funktioniert der von mir gepostete Batch) ...Wie müßte es aussehn, wenn ich es mit dem..............DO wget -q "http:................." verbinden möchte ?
Die gesamte Klammer (= Zeilen 3 bis 6) wird für jedes Laufwerk einmal ausgeführt - daher einfach "wget ...
" innerhalb der Klammer platzieren (analog zu Zeile 6).Grüße
bastla
Hallo Backspace!
Abgesehen davon, dass unsere Interpretationen hinsichtlich der Prozentberechnung etwas differieren, solltest Du schon gesehen haben, dass arithmetische Berechnungen in CMD mit "
Hinsichtlich der Verwendung zweier "
Ob die "
Noch als Hinweis: Für die Verwendung von "
Grüße
bastla
Abgesehen davon, dass unsere Interpretationen hinsichtlich der Prozentberechnung etwas differieren, solltest Du schon gesehen haben, dass arithmetische Berechnungen in CMD mit "
set /a Variable=
" durchgeführt werden.Hinsichtlich der Verwendung zweier "
wmic
"-Abfragen: ist möglich (wenn auch für den angestrebten Zweck nicht in der von Dir dargestellten Form), aber ziemlich sinnlos ...Ob die "
wmic
"-Ausgabe unter allen benötigten BS das selbe Ergebnis (zumindest hinsichtlich der "tokens") liefert, musst Du selbst testen.Noch als Hinweis: Für die Verwendung von "
wmic
" sind Admin-Rechte erforderlich.Grüße
bastla