sov44
- Стаж: 8 лет 2 месяца
- Сообщений: 32
- Репутация:4[+] [-]
- Откуда: г. Киров
|
dimo70, строчкуfor /d %%c in ("!off:~0,-1!.txt") do set v_off=%%~nc можно удалить, если не требуется отображение в консоли версии Office. Оставлял, как задел на случай типаif /i "%v_off%"=="Office14" set "ver_off=Microsoft office 2010" if /i "%v_off%"=="Office16" set "ver_off=Microsoft office 2016" echo %ver_off% 81298Камрады, используйте переменные среды Согласен, делал на скорую руку.
|
dimo70
- Стаж: 7 лет 2 месяца
- Сообщений: 3785
- Репутация:27[+] [-]
- Откуда: BG
|
Изменил в связи с рекомендации выше. Результат:@echo off setlocal enabledelayedexpansion mode con cols=71 lines=19 color 2E Title Windows and Office licence status: echo Windows Activation Status: for %%a in (%windir%\system32\slmgr.vbs) do set p_vbs=%%a echo. cscript "%p_vbs%" /dli| findstr /il /c:"Name:" /c:"Description:" /c:"Partial Product Key" /c:"License Status:" /c:"Volume activation expiration" /c:"Activation Interval" echo ...................................................................... echo. echo MS Office Activation Status: echo. for %%a in ("%ProgramFiles%","%ProgramFiles(x86)%") do ( for /f "delims=" %%b in ('where /r %%a "OSPP.VBS" 2^>nul') do set p_vbs=%%b& set off=%%~dpb for /d %%c in ("!off:~0,-1!.txt") do set v_off=%%~nc ) echo Found %v_off% on this machine. echo. if defined p_vbs ( cscript "%p_vbs%" /dstatus| findstr /il /c:"License Status" /c:"Remaining Grace" ) echo. pause ActStatus
_________________ Подпись отключена за нарушение правил форума
|
Ander_73
- Стаж: 8 лет
- Сообщений: 3914
- Репутация:127[+] [-]
|
dimo70, Вот это глупость:cscript "%p_vbs%" /dli| findstr /il /c:"Name:" /c:"Description:" /c:"Partial Product Key" /c:"License Status:" /c:"Volume activation expiration" /c:"Activation Interval" Во-первых, будет работать только с английской Виндовс (решаемо). Во-вторых, Виндовс, активированная не через Volume, будет давать иные сведения (но тут я не знаток, просто мысль).
|
dimo70
- Стаж: 7 лет 2 месяца
- Сообщений: 3785
- Репутация:27[+] [-]
- Откуда: BG
|
А если так?cscript "%p_vbs%" /dli| findstr /il /c:"Partial Product Key" /c:"License Status:" /c:"Volume activation expiration" /c:"Activation Interval"
_________________ Подпись отключена за нарушение правил форума
|
sov44
- Стаж: 8 лет 2 месяца
- Сообщений: 32
- Репутация:4[+] [-]
- Откуда: г. Киров
|
dimo70, у вас одинаковое имя переменной как для пути к slmgr.vbs, так и для пути к OSPP.VBS. Должны быть разные имена, иначе можем получить ошибку на этапе определения статуса активации офиса при отсутствии офиса в системе.
|
Ander_73
- Стаж: 8 лет
- Сообщений: 3914
- Репутация:127[+] [-]
|
dimo70, зачем ты вообще парсишь вывод активации Винды? Оставь как есть. Он будет на языке системы (понятном пользователю).81304Должны быть разные имена ... или очистка переменной перед повторным использованием.
|
Отправлено: 08-Ноя-2020 17:24
(спустя 1 час 37 минут)
dimo70
- Стаж: 7 лет 2 месяца
- Сообщений: 3785
- Репутация:27[+] [-]
- Откуда: BG
|
Ander_73, а как задать очистку переменной? Гуглил вроде, но ничего не нашел.
_________________ Подпись отключена за нарушение правил форума
|
Ander_73
- Стаж: 8 лет
- Сообщений: 3914
- Репутация:127[+] [-]
|
dimo70, очистка переменной - это задание ей пустого значения.
|
dimo70
- Стаж: 7 лет 2 месяца
- Сообщений: 3785
- Репутация:27[+] [-]
- Откуда: BG
|
Если так:кодecho Windows Activation Status: for %%a in (%windir%\system32\slmgr.vbs) do set h_vbs=%%a echo. cscript "%h_vbs%" /dli| findstr /il /c:"Partial Product Key" /c:"License Status:" /c:"Volume activation expiration" /c:"Activation Interval" echo. echo ...................................................................... echo. echo MS Office Activation Status: echo. set "%%a=" for %%a in ("%ProgramFiles%","%ProgramFiles(x86)%") do ( for /f "delims=" %%b in ('where /r %%a "OSPP.VBS" 2^>nul') do set h_vbs=%%b& set off=%%~dpb for /d %%c in ("!off:~0,-1!.txt") do set v_off=%%~nc ) echo Found %v_off% on this machine. echo. if defined h_vbs ( cscript "%h_vbs%" /dstatus| findstr /il /c:"License Status" /c:"Remaining Grace" ) можно считать, что очищено?
_________________ Подпись отключена за нарушение правил форума
|
Отправлено: 08-Ноя-2020 20:55
(спустя 2 часа 57 минут)
sov44
- Стаж: 8 лет 2 месяца
- Сообщений: 32
- Репутация:4[+] [-]
- Откуда: г. Киров
|
81308 можно считать, что очищено? Нет. Вы должны обнулять переменную пути к vbs. Вместо set "%%a=" нужно писать set "h_vbs=" Но я-бы для каждого пути ввёл свою переменную, как это сделал sergeysvirid на предыдущей страничке, плюс добавил-бы общепонятное название офиса.Title Windows and Office licence status: echo Windows Activation Status: echo. for %%a in (%windir%\system32\slmgr.vbs) do set s_vbs=%%a echo. cscript "%s_vbs%" /dli echo ................................................................... echo. echo MS Office Activation Status: echo. for %%a in ("%ProgramFiles%","%ProgramFiles(x86)%") do ( for /f "delims=" %%b in ('where /r %%a "OSPP.VBS" 2^>nul') do set p_vbs=%%b& set off=%%~dpb for /d %%c in ("!off:~0,-1!.txt") do set v_off=%%~nc ) if /i "%v_off%"=="Office12" set "ver_off=Microsoft office 2007" if /i "%v_off%"=="Office14" set "ver_off=Microsoft office 2010" if /i "%v_off%"=="Office16" set "ver_off=Microsoft office 2016" echo. if defined p_vbs ( echo %ver_off%. echo. cscript "%p_vbs%" /dstatus| findstr /il /c:"License Status" /c:"Remaining Grace" ) if not defined p_vbs ( echo Microsoft office not found on this machine. echo. ) echo. pause exit
|
Ander_73
- Стаж: 8 лет
- Сообщений: 3914
- Репутация:127[+] [-]
|
sov44, зачем вообще нужна эта переменная?cscript %windir%\system32\slmgr.vbs /dli
|
dimo70
- Стаж: 7 лет 2 месяца
- Сообщений: 3785
- Репутация:27[+] [-]
- Откуда: BG
|
sov44, сделал и перезалил. Не могу понять почему у nik63 не получается сдесь.
_________________ Подпись отключена за нарушение правил форума
|
sov44
- Стаж: 8 лет 2 месяца
- Сообщений: 32
- Репутация:4[+] [-]
- Откуда: г. Киров
|
81318sov44, зачем вообще нужна эта переменная? cscript %windir%\system32\slmgr.vbs /dli Не нужна. Банальный капипаст. Доверим исправить этот нюанс dimo70.
|
Отправлено: 08-Ноя-2020 22:53
(спустя 1 час 9 минут)
Страница 32 из 94
Текущее время: 05-Фев 18:47
Часовой пояс: UTC + 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете прикреплять файлы к сообщениям Вы можете скачивать файлы
|
|