Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Определение версии файла

Ответить
Настройки темы
VBS/WSH/JS - [решено] Определение версии файла

Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Добрый день!
Прошу вашей помощи.

Необходимо добавить в существующий скрипт при входе в винду след. функцию:

Проверяется файл по пути с:\\хх\х.ехе
Если файл не существует то шлем письмо админу "файл не найден"
Если его версия не равна 1.1 то шлем письмо админу "версии не совпадают"

Отправлено: 22:01, 15-06-2010

 

Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


cause, примерно так, выделенные значения необходимо заменить на свои:
читать дальше »
Код: Выделить весь код
Set WS = CreateObject("WScript.Shell")
Set FSO= CreateObject("Scripting.FileSystemObject")
sCompName = WS.ExpandEnvironmentStrings("%ComputerName%")
sUserName = WS.ExpandEnvironmentStrings("%UserName%")

sFile = "с:\хх\х.ехе"
sTo   = "adm@srv.com"
sFrom = "monitor@srv.com"
sSubj = "Monitor: "& sUserName &" ["& sCompName &"]"

If FSO.FileExists(sFile) Then
  If FSO.GetFileVersion(sFile) <> "1.1" Then
    SendMail sTo, sFrom, sSubj, "версии не совпадают"
  End If
Else
  SendMail sTo, sFrom, sSubj,"файл не найден"
End If

Sub SendMail(sTo, sFrom, sSubj, sText)
  Dim oEmail:Const sCfg = "http://schemas.microsoft.com/cdo/configuration/"
  Set oEmail = CreateObject("CDO.Message")

  oEmail.Configuration.Fields.Item(sCfg &"smtpserver")      = "smtp.dom.local"
  oEmail.Configuration.Fields.Item(sCfg &"sendusername")    = "monitor"
  oEmail.Configuration.Fields.Item(sCfg &"sendpassword")    = "password"
  oEmail.Configuration.Fields.Item(sCfg &"smtpserverport")  = 25
  oEmail.Configuration.Fields.Item(sCfg &"smtpauthenticate")= cdoBasic
  oEmail.Configuration.Fields.Item(sCfg &"sendusing")       = 2
  oEmail.Configuration.Fields.Update

  oEmail.To      = sTo  :oEmail.From    = sFrom
  oEmail.Subject = sSubj:oEmail.Textbody= sText

  oEmail.Send
End Sub
Это сообщение посчитали полезным следующие участники:

Отправлено: 03:54, 16-06-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо работает!
Еще 2 вопросика
1. А если надо определить имеет ли файл заданный размер Например файл должен иметь размер 255 байт?
2. Если надо проверять файл по пути используя стандартные виндовские среды то это должно выглядеть так:
sFile = "%SYSTEMROOT%\хх\х.ехе"
sFile = "%program files%\хх\х.ехе"

Отправлено: 12:06, 18-06-2010 | #3


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


1.
Код: Выделить весь код
If FSO.FileExists(sFile) Then
  If FSO.GetFileVersion(sFile) <> "1.1" Then
    SendMail sTo, sFrom, sSubj, "версии не совпадают"
  End If
  If FSO.GetFile(sFile).Size <> 255 Then
    SendMail sTo, sFrom, sSubj, "размер не совпадает"
  End If
Else
  SendMail sTo, sFrom, sSubj,"файл не найден"
End If
2.
Код: Выделить весь код
sFile = WS.ExpandEnvironmentStrings("%SystemRoot%")& "\хх\х.ехе"
sFile = WS.ExpandEnvironmentStrings("%ProgramFiles%")& "\хх\х.ехе"
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:29, 18-06-2010 | #4


Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Большое спасибо!

Отправлено: 09:58, 21-06-2010 | #5


Аватара для batyaPS

Ветеран


Сообщения: 968
Благодарности: 61

Профиль | Отправить PM | Цитировать


подскажите как поправить кусок cmd скрипта что бы
во второй и третьей строчке получить версию файла

Код: Выделить весь код
FOR /F "tokens=1* usebackq" %%a IN (`""filever.exe" /V "%programfiles%\1cv82\common\1cestart.exe" | FIND "FileVersion""`) DO SET ver1c=%%a
xcopy \\s680000file\all\1c\namedecl.dll "%programfiles%\1cv82\ver1c\bin\" /y
regsvr32 /s "%programfiles%\1cv82\ver1c\bin\namedecl.dll"

Отправлено: 20:52, 04-09-2012 | #6


Аватара для batyaPS

Ветеран


Сообщения: 968
Благодарности: 61

Профиль | Отправить PM | Цитировать


получилось скопировать вот так:


Код: Выделить весь код
for /f "tokens=1,2 delims=	" %%i in ('filever.exe /v "%programfiles%\1cv82\common\1cestart.exe"^|find.exe /i "FileVersion"') do set %%i=%%j
xcopy \\s680000file\all\1c\namedecl.dll "%programfiles%\1cv82\%FileVersion%\bin\" /y
regsvr32 /s "%programfiles%\1cv82\%FileVersion%\bin\namedecl.dll"
но как поменять переменную FileVersion скажем на ver1c , что бы избежать в дальнейшем при выполнении скрипта проблем ?

Отправлено: 21:10, 04-09-2012 | #7


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


batyaPS, поясните подробнее Вашу хотелку, учитывая, что не у всех есть 1Cv8.

Отправлено: 22:41, 04-09-2012 | #8


Аватара для batyaPS

Ветеран


Сообщения: 968
Благодарности: 61

Профиль | Отправить PM | Цитировать


Цитата Iska:
batyaPS, поясните подробнее Вашу хотелку, учитывая, что не у всех есть 1Cv8. »
да просто нужно объявить переменную скажем %ver1c% вместо %FileVersion% которая так же будет выводить версию файла, что дальше в скрипте можно было её использовать и не пересекать с другими задачами.

т.е. мне надо что бы строка regsvr32 /s "%programfiles%\1cv82\%FileVersion%\bin\namedecl.dll"
работа вот так regsvr32 /s "%programfiles%\1cv82\%ver1c%\bin\namedecl.dll"

Отправлено: 09:53, 05-09-2012 | #9


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата batyaPS:
да просто нужно объявить переменную скажем %ver1c% вместо %FileVersion% которая так же будет выводить версию файла, »
Зачем? Какая разница?

Цитата batyaPS:
дальше в скрипте можно было её использовать и не пересекать с другими задачами. »
Не пересекайте:
Код: Выделить весь код
setlocal /?
endlocal /?
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:41, 05-09-2012 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Определение версии файла

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Определение версии (сборки) и сервис пака ОС ultra_fs Скриптовые языки администрирования Windows 69 27-01-2018 22:53
CMD/BAT - [решено] Определение атрибута файла & проверка наличия процесса user_123 Скриптовые языки администрирования Windows 10 19-11-2010 16:15
Интерфейс - [решено] не правильное отображение русского файла на eng версии-XP CnyH9I Microsoft Windows 2000/XP 1 06-02-2009 13:25
Использование - [решено] Определение версии Windows __sa__nya Лицензирование продуктов Microsoft 2 20-06-2008 07:33
Определение версии сервис пака по файлам дистрибутива Sparkster Microsoft Windows 2000/XP 3 07-05-2007 22:26




 
Переход