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-Key: 289857

Url: https://administrator.de/contentid/289857

Printed on: April 25, 2024 at 13:04 o'clock

Member: H41mSh1C0R
H41mSh1C0R Dec 02, 2015 at 10:08:05 (UTC)
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ß
Mitglied: 114757
Solution 114757 Dec 02, 2015 updated at 10:56:18 (UTC)
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
Member: miichiii9
miichiii9 Dec 02, 2015 at 10:42:55 (UTC)
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
Member: miichiii9
miichiii9 Dec 02, 2015 at 10:46:24 (UTC)
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
Mitglied: 114757
Solution 114757 Dec 02, 2015 updated at 10:56:14 (UTC)
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
))
Member: miichiii9
miichiii9 Dec 02, 2015 at 10:57:03 (UTC)
Goto Top
Danke vielmal

Gruss
Miichiii9
Mitglied: 114757
114757 Dec 02, 2015 updated at 10:58:42 (UTC)
Goto Top
Zitat von @miichiii9:
Danke vielmal
"De rien" face-smile