РЕДАКТИРОВАТЬ Я думаю это источник, на который я ссылался
Это сценарий, который я использую, извиняюсь, но не помню откуда. (Итак, читатель, если это началось как ваш скрипт, пожалуйста, сделайте шаг вперед). Он использует FileSystemObject, который может напрямую получать версию.
@echo off
setlocal
set vbs="%temp%\filever.vbs"
set file=%1
echo Set oFSO = CreateObject("Scripting.FileSystemObject") >%vbs%
echo WScript.Echo oFSO.GetFileVersion(WScript.Arguments.Item(0)) >>%vbs%
for /f "tokens=*" %%a in (
'cscript.exe //Nologo %vbs% %file%') do set filever=%%a
del %vbs%
echo Full file version of %file% is: %filever%
for /f "tokens=2 delims=. " %%a in ("%filever%") do set secondparam=%%a
set splevel=%secondparam:~0,1%
echo SP level is: %splevel%
endlocal
pause