PowerShell用户未输入OU路径时自动启用默认值的问题求助
原有代码逻辑无法实现需求,原因是Read-Host在用户无输入直接回车时,返回的是空字符串,而非$null,仅当用户通过Ctrl+C主动中断输入时才会返回$null,因此原有仅判断$null的条件无法覆盖“用户未输入内容”的常规场景。
方案1:兼容所有空输入场景的标准写法
使用[string]::IsNullOrEmpty()方法同时判断空字符串和$null两种情况,覆盖所有无有效输入的场景:
$OU = Read-Host -Prompt "Enter the new users OU path" if ([string]::IsNullOrEmpty($OU)) { $OU = "CN=Users,DC=de,DC=ing,DC=kus,DC=tb" }
方案2:高版本PowerShell简化写法
PowerShell 5.1及以上版本支持三元运算符简写,代码更精简:
$OU = Read-Host -Prompt "Enter the new users OU path" # 左侧$OU为空/为null时自动赋值右侧默认值 $OU = $OU ?: "CN=Users,DC=de,DC=ing,DC=kus,DC=tb"
内容的提问来源于stack exchange,提问作者Harry
相关产品推荐
相关产品推荐

