Как я могу создать правильный цикл do-while, используя Powershell - PullRequest
0 голосов
/ 30 августа 2018

Я хочу, чтобы скрипт генерировал случайную последнюю группу (Key0) и пытался разблокировать диск на каждой итерации с помощью объединенной строки (Key), но не работает. Я выполняю сценарий, и он просто делает одну попытку. Кажется, пока не работает.

Do {      
  $Hash0 = 0..5 | % {Get-Random -Minimum 0 -Maximum 9 }
  $Key0 = $Hash0 -join ""
  $Key  = "175615-666567-468105-046717-174922-139634-579799-"+$Key0
  manage-bde.exe -unlock H: -recoverypassword $Key >$null
  $Status = Get-BitlockerVolume -MountPoint "H:" 
} while($Status.CapacityGB -ne "0")

Я не эксперт по Powershell.

1 Ответ

0 голосов
/ 31 августа 2018

С циклом Do-While блок сценария выполняется как минимум один раз.

Условие while оценивается после выполнения блока скрипта. Блок сценария будет повторяться до тех пор, пока условие в операторе While выполняется.

Ваше заявление, в то время как заявление

while ($ Status.CapacityGB -ne "0")

Вы хотите, чтобы цикл do выполнялся, пока CapacityGB не равен 0

Если остановка цикла предполагала, что ваш оператор while оценивается как ложный, то есть CapacityGB равен нулю. Я бы проверил, что вы получаете в переменной $ status

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...