Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 如何修复搜索字符的-like_Powershell_For Loop_If Statement_Password Generator - Fatal编程技术网

Powershell 如何修复搜索字符的-like

Powershell 如何修复搜索字符的-like,powershell,for-loop,if-statement,password-generator,Powershell,For Loop,If Statement,Password Generator,我正在尝试在PowerShell中编写一个密码生成器,除了if语句之外,其他一切都正常。我是问密码是否包含任何特殊字符或数字。如果它不包含任何数字或字符,则应输出错误。如果它包含数字或字符,则应写入密码 我试图用数组和ASCII来实现这一点。我将字符写入一个带有for循环的数组,然后,我将它们转换为我想要的特定字符 这是我正在做的一个学校项目。我试图删除if语句中的括号,但它显示了密码,即使没有特殊字符和数字 $RandomePassword = "abC!231" for ($ASCII =

我正在尝试在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”
⇒ 写入错误

-类似
->
-匹配
。您正在构建一个正则表达式作为参考值,但类
运算符用于。有关更多信息,请参阅。我想我现在已经知道了,当iam在没有[char[]]$Zeichen-join“|”的情况下进行测试时,它可以完美地工作。现在,我必须找到一种方法来处理数组。谢谢你的帮助