Wie bekomme ich ein Feld der Ausgabe eines DOS-Skripts?

409
Francky Leyn

Ich habe ein DOS-Skript get_resolution.bat. Dadurch werden die Auflösungsinformationen einer Bilddatei geschrieben. Z.B:

>get_resolution.bat image_file.jpg Resolution = 400 x 400 DPI 

Jetzt brauche ich das 3. Feld, dessen horizontale Auflösung 400 ist.

Im aufrufenden Skript get_horizontal.batmuss ich dieses Feld in einer Umgebungsvariablen speichern und diese Umgebungsvariable an die Ausgabe übergeben. Also sollte dies wie folgt funktionieren:

>get_horizontal_resolution.bat image_file.jpg 400 

Wie kann ich das machen? Ich brauche das in nativem DOS.

0
Ist das die DPI oder die Auflösung? Es scheint eine ungerade Auflösung (quadratischer Bildschirm) zu sein. Ron Maupin vor 5 Jahren 0
Das ist die Auflösung in dpi. Es sind sehr große Dateien. Ich könnte 600x600 mit diesem Scanner haben. Leider war der Speicher dieses Scanners für das große Bild nicht ausreichend. Daher musste die Auflösung auf 400x400 dpi beschränkt werden. Francky Leyn vor 5 Jahren 0
Nein, DPI ist Pitch. Auflösung ist wie viele auf dem Bildschirm. Ron Maupin vor 5 Jahren 0
Auf meinem Scanner kann ich 600x600dpi Bilder erzeugen. In diesem Fall für die genrierten Bilddateien: Francky Leyn vor 5 Jahren 0
Richtig, die Tonhöhe beträgt 600x600. Die Auflösung ist die Anzahl der Punkte auf der gesamten Seite. Zum Beispiel könnte eine Bildschirmauflösung 1024x764 mit einer Neigung von 96 DPI betragen. Ron Maupin vor 5 Jahren 0
Ich habe Auflösung geschrieben, weil das Programm, das in `get_resolution.bat` (Irfanview) aufgerufen wird, etwas generiert, das zB` Resolution = 600 x 600 DPI` ausgibt. Das ist aber nicht das Problem. Das Problem ist, die ASCII-Ausgabe von `get_resolution.bat` abzufangen und dann das 3. Feld auszuwählen. daraus. Francky Leyn vor 5 Jahren 0
`@echo off für / F usebackq ^ delims ^ = ^ tokens ^ = 3 %% G in (` get_resolution.bat image_file.jpg`) do (echo %% G set / a "SomeENVvar = %% G") ` Alex vor 5 Jahren 0
das geht nicht Ich kann nicht herausfinden warum.FOR / F "usebackq delims = tokens = 3" %% I IN (`get_resolution.bat% 1 ') SET SET HOR_RES = %% I ECHO% HOR_RES% Francky Leyn vor 5 Jahren 0
Das geht nicht. Ich kann nicht herausfinden warum. `FOR / F" usebackq delims = Tokens = 3 "%% I IN (get_resolution.bat% 1) SET SET HOR_RES = %% I ECHO% HOR_RES% Francky Leyn vor 5 Jahren 0

0 Antworten auf die Frage