For / F - ForFiles для выбора / вывода / установки текста, но только из первой строки результата - PullRequest
0 голосов
/ 31 октября 2019

Я не очень умел в кодировании командной строки, но я изо всех сил пытался получить значение из команды "manage-bde -status c:", которая показывает шифрование BitLocker.

Я тоженовое здесь.

в основном, вывод команды, когда она завершена на 100%:

BitLocker Drive Encryption: Configuration Tool version 10.0.18362
Copyright (C) 2013 Microsoft Corporation. All rights reserved.

Volume C: [Windows ]
[OS Volume]

Size:                 475.79 GB
BitLocker Version:    2.0
Conversion Status:    Fully Encrypted
Percentage Encrypted: 100.0%
Encryption Method:    XTS-AES 128
Protection Status:    Protection On
Lock Status:          Unlocked
Identification Field: Unknown
Key Protectors:
    Numerical Password
    TPM

Я пытаюсь создать пакетный файл, который проверяет, находится ли состояние шифрования на 100%, изатем он должен продолжить работу и создать резервную копию ключа восстановления на сервере Active Directory (с помощью другой команды).

мой частичный код, который должен проверять только строку 9, выглядит следующим образом:

manage-bde -status c:

for /f "skip=9 tokens=2* delims=: eol=X " %%g in ('"manage-bde -status c:"') do set Perce=%%g
echo %Perce%

if %Perce%==100.0% ( echo Bit Locker Enabled ) else ( echo Bit Locker Not Enabled )

однакокоманды возвращаются со множественными значениями и устанавливают «100,0%», «XTS-AES 128», затем «Защита вкл.» и продолжают до последнего значения «Неизвестно» и устанавливают его как «Perce»: For ищеттакже следующие значения.

, поскольку он начинается с состояния строки I и сохраняет все значения из токена 2

, более подробно результат команды:

set Perce= 100.0%
set Perce=    XTS-AES 128
set Perce=    Protection On
set Perce=          Unlocked
set Perce= Unknown
echo  Unknown

могу ли я как-то остановить Кommand и получить только значение "100.0%"?

заранее спасибо, Стефанос

...