CMD/BAT - [решено] Использование утилит Билла Стюарта в BAT

Ответить
Аватара пользователя
Lucretius

CMD/BAT - [решено] Использование утилит Билла Стюарта в BAT

Сообщение Lucretius »

Недавно натолкнулся на набор утилит командной строки (автор: Билл Стюарт), предназначенных для администрирования Windows. Скачать и ознакомиться с описанием можно по
ссылке
.

Возможности утилит удобно использовать в скриптах, например в BAT. Утилиты бесплатны, их также можно использовать в собственных приложениях с предварительного разрешения автора.



Вопрос по утилитам FVerTest.exe и OSTest.exe:

FVerTest.exe выводит информацию о версии EXE/DLL, в виде:

[1.0.0.0] C:\Windows\system32\Library.dll



OSTest.exe выводит информацию об ОС:

Platform: ...

Version: ...

Service Pack: ...

Build: ...

Home edition: ...

Role: ...

Terminal Server: ...

Architecture: ...



Каким образом можно вывести в переменные эти значения/одно из значений?

Чтобы впоследствии можно было создать похожие конструкции:



Код:

Код: Выделить всё

If "%version%"=="1.0.0.0" GoTo :enter_path
Аватара пользователя
zion87

Re: CMD/BAT - [решено] Использование утилит Билла Стюарта в BAT

Сообщение zion87 »

так можно и без утилит





Код:

Код: Выделить всё

FOR /F "tokens=3* delims= " %%i in ('ver') do set version=%%i
If version==5.1 GoTo :xp
If version==6.1 GoTo :seven
и т.д.



Windows NT 3.1 (1993)

Windows NT 3.5 (1994)

Windows NT 3.51 (1995)

Windows NT 4.0 (1996)

Windows 2000 (2000) — Windows NT 5.0

Windows XP (2001) — Windows NT 5.1

Windows XP 64-bit Edition (2006) — Windows NT 5.2

Windows Server 2003 (2003) — Windows NT 5.2

Windows Vista (2006) — Windows NT 6.0

Windows Home Server (2007) — Windows NT 5.2

Windows Server 2008 (2008) — Windows NT 6.0

Windows Small Business Server (2008) — Windows NT 6.0

Windows 7 — Windows NT 6.1 (2009)

Windows Server 2008 R2 — Windows NT 6.1 (2009)

Windows Home Server 2011 — Windows NT 6.1 (2011)

Windows 8 — Windows NT 6.2 (2012)

Windows Server 8 — Windows NT 6.2 (2012)
Аватара пользователя
Iska

Re: CMD/BAT - [решено] Использование утилит Билла Стюарта в BAT

Сообщение Iska »

Код:

Код: Выделить всё

@echo off
setlocal enableextensions enabledelayedexpansion
for /f "usebackq delims=[] " %%i in (`FVerTest.exe "C:\WINDOWS\system32\shell32.dll"`) do set sVersion=%%i
if defined sVersion echo [%sVersion%]
endlocal
exit /b 0

Но почему Вы не хотите использовать имеющийся функционал по сравнению версии:


Цитата:



SYNOPSIS

fvertest [-v version] [-q] [d:][path]filename.ext



?



Наподобие:



Код:

Код: Выделить всё

@echo off
setlocal enableextensions enabledelayedexpansion
FVerTest.exe -v "6.0.2900.5853" -q "C:\WINDOWS\system32\shell32.dll"
if %errorlevel% equ 1 echo Version is equal
endlocal
exit /b 0

Работа с «OSTest.exe» аналогична приведённым примерам.
Аватара пользователя
Lucretius

Re: CMD/BAT - [решено] Использование утилит Билла Стюарта в BAT

Сообщение Lucretius »

Iska спасибо! Вы мне помогли.

Встроенный функционал мне не подходит т.к. мне недостаточно верифицировать конкретную версию, а необходимо принимать отдельное решение для каждой версии.
Аватара пользователя
Iska

Re: CMD/BAT - [решено] Использование утилит Билла Стюарта в BAT

Сообщение Iska »

Не то. Опишите существующий алгоритм. Можно словами.
Аватара пользователя
Iska

Re: CMD/BAT - [решено] Использование утилит Билла Стюарта в BAT

Сообщение Iska »

Цитата Iska:



Опишите существующий алгоритм. Можно словами.
CMD/BAT - [решено] Использование утилит Билла Стюарта в BAT




Алгоритм, как Вы понимаете в процессе реализации. В BAT я не силён поэтому сейчас застрял на сборке скрипта. Если словами, то используется патч(исполняемый файл) соответствующий версии пропатчиваемой программы. Всего патчей 3, ввиду небольшого размера патчей(
Аватара пользователя
Iska

Re: CMD/BAT - [решено] Использование утилит Билла Стюарта в BAT

Сообщение Iska »

Lucretius, я просто не могу понять, почему Вы считаете, что использование «-v» Вам не подходит?!
Аватара пользователя
Iska

Re: CMD/BAT - [решено] Использование утилит Билла Стюарта в BAT

Сообщение Iska »

Iska, Да действительно в моём случае лучше использовать «-v» для каждой версии. Я ошибочно полагал что при выводе значения в переменную код будет проще. Впрочем это удобно для вывода информации о версии в отображаемом тексте например в диалоге или предупреждении.
Ответить

Вернуться в «Скриптовые языки администрирования Windows»