У меня есть командный файл от поставщика для исправления некоторого программного обеспечения на компьютере с Vista. Я собираюсь использовать GPO, чтобы выдвинуть его как сценарий запуска.
Моя проблема в том, что некоторые системы требуют этого программного обеспечения, а некоторые нет.
Я хотел бы добавить код в начало сценария, чтобы проверить наличие exe, и вытащить строку, которую можно просмотреть, если щелкнуть правой кнопкой мыши exe, вкладку сведений, поле «Версия продукта».
Пожалуйста, предлагайте другие решения в качестве комментариев. Я знаю о других способах справиться с этим, и у меня есть пара. Я открыт для предложений, но предпочел бы, чтобы все ответы приходились на этот конкретный вопрос. Можно ли это сделать, если да, то как?
Спасибо! -Мэттью
Вам понадобится утилита под названием filever, которая поставляется в качестве вспомогательного инструмента с Windows. Вот страница детализируя его варианты.
В пакетном файле вы, вероятно, использовали бы его так:
@IF NOT EXIST C:\PATH\TO\YOUR\APP.EXE GOTO END
@SET APPVER=3.14159
@\\FILESHARE\filever.exe "C:\PATH\TO\YOUR\APP.EXE" | findstr /i %APPVER% > nul
@IF %ERRORLEVEL% EQU 0 GOTO END
@\\FILESHARE\PATH\TO\YOUR\APP\Update.exe
:END
Вы можете легко сделать это с помощью Powershell. Что-то вроде:
if ([System.Diagnostics.FileVersionInfo]::GetVersionInfo("PathToExe").FileVersion -eq "1.1.0.0") {
.\DoPatch.bat
}
Это проверяет версию файла, и если она соответствует вашей желаемой версии, он выполнит ваш командный файл.