[Quote]

    sov44
  • 14940
  • Longevity: 8 years 1 month
  • Posts: 32
  • REPUTATION:4

    [+] [-]
  • Location: г. Киров
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Камрады, используйте переменные среды
Согласен, делал на скорую руку.

[Quote]

    dimo70
  • 17296
  • Longevity: 7 years 1 month
  • Posts: 3794
  • REPUTATION:27

    [+] [-]
  • Location: 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

_________________
Signed off for violation of forum rules

[Quote]

    Ander_73
  • 15549
  • Longevity: 7 years 11 months
  • Posts: 3928
  • REPUTATION: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, будет давать иные сведения (но тут я не знаток, просто мысль).

[Quote]

    dimo70
  • 17296
  • Longevity: 7 years 1 month
  • Posts: 3794
  • REPUTATION:27

    [+] [-]
  • Location: BG
А если так?
cscript "%p_vbs%" /dli| findstr /il /c:"Partial Product Key" /c:"License Status:" /c:"Volume activation expiration" /c:"Activation Interval"
aa

_________________
Signed off for violation of forum rules

[Quote]

    sov44
  • 14940
  • Longevity: 8 years 1 month
  • Posts: 32
  • REPUTATION:4

    [+] [-]
  • Location: г. Киров
dimo70, у вас одинаковое имя переменной как для пути к slmgr.vbs, так и для пути к OSPP.VBS. Должны быть разные имена, иначе можем получить ошибку на этапе определения статуса активации офиса при отсутствии офиса в системе.

[Quote]

    Ander_73
  • 15549
  • Longevity: 7 years 11 months
  • Posts: 3928
  • REPUTATION:127

    [+] [-]
dimo70, зачем ты вообще парсишь вывод активации Винды? Оставь как есть. Он будет на языке системы (понятном пользователю).
81304Должны быть разные имена
... или очистка переменной перед повторным использованием.

[Quote]

    dimo70
  • 17296
  • Longevity: 7 years 1 month
  • Posts: 3794
  • REPUTATION:27

    [+] [-]
  • Location: BG
Ander_73, а как задать очистку переменной? ah
Гуглил вроде, но ничего не нашел.

_________________
Signed off for violation of forum rules

[Quote]

    Ander_73
  • 15549
  • Longevity: 7 years 11 months
  • Posts: 3928
  • REPUTATION:127

    [+] [-]
dimo70, очистка переменной - это задание ей пустого значения.
set "var="

[Quote]

    dimo70
  • 17296
  • Longevity: 7 years 1 month
  • Posts: 3794
  • REPUTATION:27

    [+] [-]
  • Location: 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"
)
можно считать, что очищено?

_________________
Signed off for violation of forum rules

[Quote]

    Ander_73
  • 15549
  • Longevity: 7 years 11 months
  • Posts: 3928
  • REPUTATION:127

    [+] [-]
dimo70, ты вообще не читаешь, что тебе пишут?
81304у вас одинаковое имя переменной как для пути к slmgr.vbs, так и для пути к OSPP.VBS

81308set "%%a="
Это я даже комментировать не буду fp

[Quote]

    sov44
  • 14940
  • Longevity: 8 years 1 month
  • Posts: 32
  • REPUTATION:4

    [+] [-]
  • Location: г. Киров
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

[Quote]

    Ander_73
  • 15549
  • Longevity: 7 years 11 months
  • Posts: 3928
  • REPUTATION:127

    [+] [-]
sov44, зачем вообще нужна эта переменная?
cscript %windir%\system32\slmgr.vbs /dli

[Quote]

    dimo70
  • 17296
  • Longevity: 7 years 1 month
  • Posts: 3794
  • REPUTATION:27

    [+] [-]
  • Location: BG
sov44, сделал и перезалил.
Не могу понять почему у nik63 не получается сдесь.

_________________
Signed off for violation of forum rules

[Quote]

    sov44
  • 14940
  • Longevity: 8 years 1 month
  • Posts: 32
  • REPUTATION:4

    [+] [-]
  • Location: г. Киров
81318sov44, зачем вообще нужна эта переменная?
cscript %windir%\system32\slmgr.vbs /dli
Не нужна. Банальный капипаст. Доверим исправить этот нюанс dimo70. ab

[Quote]

    dimo70
  • 17296
  • Longevity: 7 years 1 month
  • Posts: 3794
  • REPUTATION:27

    [+] [-]
  • Location: BG
Ander_73, sov44, спасибо за помощь.
sov44, деликатный намек. ab aa
К сожалению не уверен, что успею исправить. Пробовал, но скрипт или перестает работать, или возвращается на внешнее окно.

_________________
Signed off for violation of forum rules

Page 32 of 94


Display posts:    

Current time is: 14-Jan 23:33

All times are UTC + 3


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum