Ausgabe in Variable umleiten
Hallo,
ich habe mich hier frisch angemeldet, weil ich kurz eure Hilfe brauche. Eigentlich ist es nix ungewöhnliches und bestimmt auch schnell zu lösen, aber ich stehe momentan auf dem Schlauch und weiß einfach nicht weiter..
Vorab: Das OS ist DOS 6.22. Tipps, die sich auf die Befehlserweiterungen von W2k/XP beziehen, helfen mir also u.U. nicht weiter. Bitte beachten.
Meine Situation ist folgende:
Mit den Befehlen
fdisk /status | cut 58 63
erhalte ich die Größe der Festplatte. Diese möchte ich später mit einem anderen Programm auswerten bzw. vergleichen. Dazu muss die Größe allerdings in einer Variable stehen und genau das ist mein Problem. Wie kann ich die Ausgabe in eine Variable umleiten?
Bei fdisk handelt es sich um FreeFDISK. Mit dem Parameter /status erhalte ich eine Übersicht, in der Informationen über Festplatten, Partitionen usw. ausgegeben werden.
cut schnippelt diese Übersicht auseinander, denn genau zwischen der 58. und 63. Stelle steht die Größe der HD. Ich könnte nun die Ausgabe mit > in eine Datei schreiben, aber das hilft mir nicht weiter. Oder kann ich den Inhalt der Datei in eine Variable übertragen?
Okay, das war schon alles.
Ich bin für jeden (kleinen) Tipp dankbar...
Gruß
Mupfman
ich habe mich hier frisch angemeldet, weil ich kurz eure Hilfe brauche. Eigentlich ist es nix ungewöhnliches und bestimmt auch schnell zu lösen, aber ich stehe momentan auf dem Schlauch und weiß einfach nicht weiter..
Vorab: Das OS ist DOS 6.22. Tipps, die sich auf die Befehlserweiterungen von W2k/XP beziehen, helfen mir also u.U. nicht weiter. Bitte beachten.
Meine Situation ist folgende:
Mit den Befehlen
fdisk /status | cut 58 63
erhalte ich die Größe der Festplatte. Diese möchte ich später mit einem anderen Programm auswerten bzw. vergleichen. Dazu muss die Größe allerdings in einer Variable stehen und genau das ist mein Problem. Wie kann ich die Ausgabe in eine Variable umleiten?
Bei fdisk handelt es sich um FreeFDISK. Mit dem Parameter /status erhalte ich eine Übersicht, in der Informationen über Festplatten, Partitionen usw. ausgegeben werden.
cut schnippelt diese Übersicht auseinander, denn genau zwischen der 58. und 63. Stelle steht die Größe der HD. Ich könnte nun die Ausgabe mit > in eine Datei schreiben, aber das hilft mir nicht weiter. Oder kann ich den Inhalt der Datei in eine Variable übertragen?
Okay, das war schon alles.
Ich bin für jeden (kleinen) Tipp dankbar...
Gruß
Mupfman
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 31509
Url: https://administrator.de/forum/ausgabe-in-variable-umleiten-31509.html
Ausgedruckt am: 25.04.2025 um 02:04 Uhr
1 Kommentar
Hallo,
nun bei DOS selbst ist es sehr schwierig eine Auswertung in eine Variable zu bekommen.
Aber test mal folgendes:
Den Output von FDISK überträgst Du zunächst in eine Textdatei mit
fdisk /status | cut 58 63>%temp%\tmp.txt
Dann habe ich hier eine kleine Batch, die dieses Datei liest und in eine Variable schreibt, aber nur die erste Zeile und in deinem Fall ist es ja ein Einzeiler.
Name = inpvar.bat
snip
@echo off
cls
rem Zeile aus Datei in eine Variable speichern
rem %%1 = Output[var]
rem %%2 = Befehl
rem %%3 = Pfad & Dateiname & .ext
set ~t1=%temp%\tmp
echo XP,;P_,EP0Ex0Ez0Em3Em-ZBP(Eiu![j@_YQ2M@53#@CI~.8'uxCISZ[SC5.bM!C>>%~t1%.com
%~t1%.com "set %%1=">>%~t1%.bat
%2 %3>>%~t1%.bat
call %~t1%.bat xo
set %1=%xo%
set xo=
del %~t1%.???>nul
cls
snap
call inpvar.bat a type "verzeichnispfad\dateiname.ext"
steht dann in %a% das Ergebnis. Übrigens die Datei %temp%\tmp.txt wird dabei gleich gelöscht.
MfG maneich
nun bei DOS selbst ist es sehr schwierig eine Auswertung in eine Variable zu bekommen.
Aber test mal folgendes:
Den Output von FDISK überträgst Du zunächst in eine Textdatei mit
fdisk /status | cut 58 63>%temp%\tmp.txt
Dann habe ich hier eine kleine Batch, die dieses Datei liest und in eine Variable schreibt, aber nur die erste Zeile und in deinem Fall ist es ja ein Einzeiler.
Name = inpvar.bat
snip
@echo off
cls
rem Zeile aus Datei in eine Variable speichern
rem %%1 = Output[var]
rem %%2 = Befehl
rem %%3 = Pfad & Dateiname & .ext
set ~t1=%temp%\tmp
echo XP,;P_,EP0Ex0Ez0Em3Em-ZBP(Eiu![j@_YQ2M@53#@CI~.8'uxCISZ[SC5.bM!C>>%~t1%.com
%~t1%.com "set %%1=">>%~t1%.bat
%2 %3>>%~t1%.bat
call %~t1%.bat xo
set %1=%xo%
set xo=
del %~t1%.???>nul
cls
snap
call inpvar.bat a type "verzeichnispfad\dateiname.ext"
steht dann in %a% das Ergebnis. Übrigens die Datei %temp%\tmp.txt wird dabei gleich gelöscht.
MfG maneich