Batch Programmierung

Dieser Thread ist Teil einer Diskussion zu einem Artikel:  Zum News-Artikel gehen Zum News-Artikel gehen

ulli39130

Neues Mitglied
Hallo, ich will mir in einer Batchdatei die ich für Sicherungen nutze die Grösse der angeschlossenen festplatten anzeigen lassen. wie ich es mache geht aber nur als Admin. weiss jemand wie ich das anders machen kann. hier meine Batch:

for %%i in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
if exist %%i:\ (
echo.
echo -------------
echo laufwerk %%i:--
echo -----------------------------------------------------------------
vol %%i: | find "ist"
echo -----------------------------------------------------------------
fsutil volume diskfree %%i:
echo -----------------------------------------------------------------
)
)
echo.
timeout /T -1 >> txt
 
Hallo ulli39130

Ich nehme an, dass die Ausgabe für Laufwerk C:\, ohne administrative Berechtigung, nicht ausgegeben wird.
Das liegt am Befehlszeilenprogramm fsutil welches erhöhte Administratorrechte erfordert.

Hier der Code für eine Abfrage mit WMI (Windows Management Instrumentation):
Bash:
@echo off
for %%i in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
    if exist %%i:\ (
        echo.
        echo -------------
        echo Laufwerk %%i:
        echo -----------------------------------------------------------------
        vol %%i: | find "ist"
        echo -----------------------------------------------------------------
        powershell -NoProfile -Command ^
            "$d=Get-WmiObject Win32_LogicalDisk -Filter 'DeviceID=''%%i:''';" ^
            "if($d){$total=[math]::round($d.Size/1GB,2); $free=[math]::round($d.FreeSpace/1GB,2);" ^
            "write-host 'Gesamtgroesse: ' $total ' GB'; write-host 'Freier Speicher: ' $free ' GB'}"
        echo -----------------------------------------------------------------
    )
)
echo.
pause
Gruss Mario
 
Zurück
Oben