Как получить 1 поле вывода сценария DOS?

252
Francky Leyn

У меня есть сценарий DOS get_resolution.bat. Это записывает информацию о разрешении файла изображения. Например:

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

Теперь мне нужно 3-е поле, горизонтальное разрешение этого вывода, равное 400.

В вызывающем скрипте get_horizontal.batя должен сохранить это поле в переменной окружения и вывести эту переменную среды на выход. Итак, это должно работать следующим образом:

>get_horizontal_resolution.bat image_file.jpg 400 

Как я могу это сделать? Мне это нужно в родном DOS.

0
Это DPI или разрешение? Казалось бы, странное разрешение (квадратный экран). Ron Maupin 5 лет назад 0
Это разрешение, выраженное в dpi. Это очень большие файлы. Я мог бы иметь 600x600 с этим сканером. Несомненно, памяти этого сканера было недостаточно для большого изображения. Таким образом, разрешение должно быть ограничено до 400x400 точек на дюйм. Francky Leyn 5 лет назад 0
Нет, DPI это шаг. Разрешение сколько на экране. Ron Maupin 5 лет назад 0
На моем сканере я могу генерировать изображения 600x600 точек на дюйм. В этом случае для сгенерированных файлов изображений: Francky Leyn 5 лет назад 0
Да, шаг 600х600. Разрешение - это общее количество точек на странице и вниз. Например, разрешение экрана может быть 1024x764 с шагом 96 точек на дюйм. Ron Maupin 5 лет назад 0
Я написал резолюцию, потому что программа, которая вызывается в `get_resolution.bat` (Irfanview), генерирует что-то, что выводит, например,` Resolution = 600 x 600 DPI`. Но это не проблема. Проблема состоит в том, чтобы перехватить вывод ASCII `get_resolution.bat` и затем выбрать 3-е поле. из этого. Francky Leyn 5 лет назад 0
`@echo off для / F usebackq ^ delims ^ = ^ токены ^ = 3 %% G in (` get_resolution.bat image_file.jpg`) do (echo %% G set / a "SomeENVvar = %% G") ` Alex 5 лет назад 0
это не работает Я не могу понять, почему. FOR / F "usebackq delims = tokens = 3" %% I IN (`get_resolution.bat% 1`) DO SET HOR_RES = %% I ECHO% HOR_RES% Francky Leyn 5 лет назад 0
Это не работает Я не могу понять, почему. FOR / F "usebackq delims = tokens = 3" %% I IN (get_resolution.bat% 1) DO SET HOR_RES = %% I ECHO% HOR_RES% Francky Leyn 5 лет назад 0

0 ответов на вопрос

Похожие вопросы