Я был бы очень благодарен за некоторую помощь с этим, поскольку это поражает меня.

Все, что я хочу сделать, это получить номер версии Symantec, используя приведенный ниже код, который работает частично, за исключением сбора последней части строки, что, как я знаю, правильно, поскольку у меня есть нечто подобное, работающее в других пакетных файлах ,

Кто-нибудь может увидеть, где я ошибся?

-

@echo off 

@setlocal enabledelayedexpansion

set VersionReg = (
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Symantec\Symantec Endpoint Protection\currentversion\public-opstate" /v "DeployRunningVersion"
)

echo %VersionReg%

SET Version=%VersionReg:~134,14%

echo %version%

-

Спасибо заранее...

1 ответ1

1

Следующий фрагмент кода .bat показывает, как получить вывод reg query в переменную с помощью цикла for /F Главным образом объяснить с помощью rem комментариев.

@ECHO OFF
SETLOCAL EnableExtensions DisableDelayedExpansion

set "_regKey=HKLM\SOFTWARE\Symantec\Symantec Endpoint Protection\currentversion\public-opstate"
set "_regVal=DeployRunningVersion"

    rem my testing values in next 2 lines (remove them)
set "_regKey=HKCU\Control Panel\PowerCfg\PowerPolicies\3"  delete this 2 lines
set "_regVal=Description"                my testing values delete this 2 lines

for /F "tokens=1,2,*" %%G in ('
            reg query "%_regKey%" /v "%_regVal%" ^| findstr /I "%_regVal%"
    ') do (
            rem next 3 lines: debugging output could be removed
        echo value name "%%~G"
        echo value type "%%~H"
        echo value data "%%~I"
        set "_VersionReg=%%~I"
    )

SET "_Version=%_VersionReg:~12,26%"      delete this line and uncomment next one
rem SET "_Version=%_VersionReg:~134,14%"                      uncomment this line

    rem an empty line for output better readability 
echo(

    rem show result:   instead, you can use         ECHO "%_Version%" 
    rem or enable delayed expansion and use         ECHO  !_Version!
set _

Выход:

==> D:\bat\SU\1142022.bat
value name "Description"
value type "REG_SZ"
value data "This scheme keeps the computer running so that it can be accessed from the netwo
rk.  Use this scheme if you do not have network wakeup hardware."

_regKey=HKCU\Control Panel\PowerCfg\PowerPolicies\3
_regVal=Description
_Version=keeps the computer running
_VersionReg=This scheme keeps the computer running so that it can be accessed from the netwo
rk.  Use this scheme if you do not have network wakeup hardware.

Ресурсы (требуется чтение, не полностью):

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .