miichiii9
Goto Top

Mit Batchdatei eine .ini erstellen

Hallo miteinander und guten Morgen

Ich möchte eine kleine Abfrage starten via Batch und diese anschliessend in eine ini Datei schreiben...

Der gewünschte Aufruf sieht wie folgt aus:
wmic logicaldisk where "drivetype=3" get name,freespace,Size,volumename  

Und die Ausgabe ist diese:
FreeSpace         Name   Size            VolumeName
92864434176       C:     249452032000
426051796992      F:     499552088064    Data


Nun möchte ich dies aber in einer ini Datei speichern das Diese anhand vom Name (z.B. C: ) auffindbar ist.

[C:]
VolumeName=Data
FreeSpace=426051796992     
Size=499552088064


Ist dies irgendwie möglich?


Freundliche Grüsse
miichiii9

Content-ID: 289857

Url: https://administrator.de/forum/mit-batchdatei-eine-ini-erstellen-289857.html

Ausgedruckt am: 23.12.2024 um 01:12 Uhr

H41mSh1C0R
H41mSh1C0R 02.12.2015 um 11:08:05 Uhr
Goto Top
Hi Michiii9,

wie schauts denn der Inhalt aus, wenn du die Ausgabe in eine Datei umleitest?

So oder so müsstest du den Weg über eine temp Datei gehen wenn du die Daten selber strukturieren willst.

Sprich Ausgabe umleiten -> Datei Stück für Stück auslesen -> Ausgelesene Werte in eigene Ini Struktur schreiben

Gruß
114757
Lösung 114757 02.12.2015 aktualisiert um 11:56:18 Uhr
Goto Top
Moin,
kleines Powershell-Skript, uuuund feddich ... face-smile
gwmi win32_logicaldisk -Filter "DriveType = 3" | select Name,Freespace,Size,Volumename | %{  
    "[$($_.Name)]"  
    "VolumeName=$($_.Volumename)"  
    "Freespace=$($_.Freespace)"  
    "Size=$($_.Size)"  
} | set-content C:\datei.ini -Encoding UTF8
Gruß jodel32
miichiii9
miichiii9 02.12.2015 um 11:42:55 Uhr
Goto Top
Man könnte das ganze au jeweils einzeln ausgeben

wmic logicaldisk where "DeviceID='C:'" get name,freespace,Size,volumename  
Allerdings muss man für jeden oder sicher für einige Buchstaben dieses mehrfach laufen lassen...

Gruss
miichiii9
miichiii9 02.12.2015 um 11:46:24 Uhr
Goto Top
Das Powershell funkt super, Danke...

Gibt es nicht dennoch eine nicht zu schwere Möglichkeit dies mit einer Batchdatei zu bewältigen?

Gruss
114757
Lösung 114757 02.12.2015 aktualisiert um 11:56:14 Uhr
Goto Top
Für die altmodischen Batchies ...
@echo off
set "ini=C:\datei.ini"  
>"%ini%" (for /f "skip=2 tokens=2-6 delims=," %%a in ('wmic volume where drivetype^=3 get Name^,Freespace^,Capacity^,Label /format:csv') DO @(  
	echo [%%d]
	echo VolumeName=%%c
	echo Size=%%a
	echo Freespace=%%b
))
miichiii9
miichiii9 02.12.2015 um 11:57:03 Uhr
Goto Top
Danke vielmal

Gruss
Miichiii9
114757
114757 02.12.2015 aktualisiert um 11:58:42 Uhr
Goto Top
Zitat von @miichiii9:
Danke vielmal
"De rien" face-smile