Проверка свойств файла в сценарии пакетной обработки?

Дайте им достаточно веревки, и они подвесят себя.

0
задан 10 September 2009 в 19:31
2 ответа

Вы испытываете необходимость в утилите, названной 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
  • Первая строка проверяет на существование Вашего приложения.
  • Вторая строка устанавливает номер версии, к которому Вы хотите исправить
  • Третья строка использует filever инструмент от MS и встроенный findstr инструмент для определения, какая версия они в настоящее время выполняют и сравнивают его с версией, которую Вы хотите, чтобы они выполнили
  • Четвертая строка говорит им пропускать под управлением Update.exe, если они уже в правильной версии
  • Пятая строка выполняет обновление для людей, которые должны быть исправлены
  • Последняя строка является точкой GOTO, на которую ссылаются выше, и заканчивает пакет
2
ответ дан 4 December 2019 в 13:14

Вы могли сделать это довольно легко с Powershell. Что-то как:

if ([System.Diagnostics.FileVersionInfo]::GetVersionInfo("PathToExe").FileVersion -eq "1.1.0.0") {
    .\DoPatch.bat
}

Это проверяет fileversion и если он будет соответствовать Вашей требуемой версии, то он выполнит Ваш пакетный файл.

1
ответ дан 4 December 2019 в 13:14

Теги

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