Получение версии продукта из файла через cmd/bat

У меня есть файл с ресурсом Version, который заполнен полями File vesrion/Product version. Мне нужно получить версию продукта через файл BAT. Например, у меня есть файл с ProductVersion 1.0.1 в выходной файл bat, я не хочу иметь строку "101" или "1.0.1"

4 ответа

Решение

Как использовать инструмент Filever.exe для получения конкретной информации о файле в Windows

Из чего я собираюсь fileverвывод всегда в столбцах, и вы хотите пятый столбец (версия). Так просто for должно хватить:

for /f "tokens=5 delims= " %%v in ('filever myFile.dll /b') do echo %%v

Ты можешь использовать sigcheck инструмент, который является частью Sysinternals Suite, так как filever тихий старый, например

$ sigcheck.exe -q -n app.exe
5.0.0.1241

Указав -q (тихо) и -n, он покажет вам только номер версии файла.

Для пустышки, как я, есть одно исправление в приведенном выше утверждении, чтобы получить значение версии продукта, это было бы так:

for /f "tokens=5 delims= " %%v in ('filever myFile.dll /b /v') do echo %%v

/v параметр отсутствует, и я не могу получить правильное значение.

Для чтения версии из RC-файла ресурса вы можете использовать:

for /F "tokens=3" %%a in ( 'findstr ProductVersion YourProgram.rc' ) do set VERSION=%%~a
Другие вопросы по тегам