Я пытаюсь написать генератор паролей в PowerShell, все отлично работает, кроме оператора if
. Я спрашиваю, содержит ли пароль какие-либо специальные символы или цифры. Если он не содержит ни одного из них, он должен вывести ошибку, если он содержит цифры или символы, он должен написать пароль.
Я пытаюсь сделать это с массивом и ASCII. Я записываю символы в массив с помощью цикла for, а затем я конвертирую их в нужный символ.
Это школьный проект, над которым я работаю. Я попытался снять скобки в операторе if
, но затем он показывает пароль даже без специальных символов и цифр.
$RandomePassword = "abC!231"
for ($ASCII = 33 ; $ASCII -le 64 ; $ASCII++) {
$char += @($ASCII)
}
if ($RandomePassword -like ([char[]]$char -join "|")) {
write (($RandomePassword -split '' | Sort-Object {Get-Random}) -join '')
} else {
write "ERROR"
}
Ожидаемый результат будет:
$RandomePassword = "Abc!12"
⇒ записывает пароль в командной строке
$RandomePassword = "Abc"
⇒ пишет ошибку