首页 > 解决方案 > 脚本没有获得多行输入

问题描述

我有以下脚本允许我在控制台上获取用户 ID,然后检查相关用户的 AD 帐户的到期日期。收集ID的部分如下:

[array]$input = (Read-Host “Staff Numbers: ”).Split([System.Environment]::NewLine, [StringSplitOptions]::RemoveEmptyEntries) 

但是,当我将用户的员工编号粘贴到控制台时,它只读取第一行并结束脚本。第一个之后的其他数字仅显示在控制台上。

知道什么是错的吗?

标签: powershell

解决方案


Read-Host根据文档,应该只占用一行:

Read-Host cmdlet从控制台读取一行输入。

如果您想获得多行,您可以:

  • 从文件中导入数据
  • 在像这里这样Read-Host的循环内使用
    $arr = @(While($line=(Read-Host).Trim()){$line})
    
  • 按照/r/PowerShell 上的建议,用任何其他字符(逗号、分号等)分隔值
    $userInput = read-host "Enter a list of comma separated hostnames"
    $data = $userInput.split(",").trim(" ")
    

推荐阅读