Как исправить -подобный поиск символов - PullRequest
0 голосов
/ 31 октября 2019

Я пытаюсь написать генератор паролей в 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" ⇒ пишет ошибку

...