powershell 将主机读入范围运算符
powershell read-host into range operator
我正在尝试找到一种方法来拥有一个具有读取主机的变量,您可以在其中以范围运算符格式输入数字。
我基本上想做以下事情
$domain=Domain.Host
$Servers = Read-Host "What servers do you want to check?" #this is where a user would input @(1..10)
$CompleteServer = $Servers$Domain
Get-Service -ComputerName $CompleteServer -Name "Service Name"
所以 $CompleteServer 将包含
01.domain.host
02.domain.host
...
10.domain.host
这有可能吗,至少有一个读取输入进入范围运算符?
Read-Host
我认为只能读取字符串。
如果你想让他们输入一个列表,你可以让他们用逗号或space分隔输入。
例如
$input = Read-Host 'enter input, separated by commas'
$inputList = $input -split ','
或
$input = Read-Host 'enter input, separated by space'
$inputList = $input -split ' '
如果用户需要输入长字符串,您可能希望他们输入换行符或其他内容:
$inputList = @()
Write-Host 'enter your input, when you finish one item, press enter, if you finish all the items, enter "END" and press enter'
$input = Read-Host 'enter the input'
while(input -nq 'END') {
$inputs.Add(input)
$input = Read-Host 'enter the input'
}
可以使用Invoke-Expression
,但要注意验证输入:
$UserInput =
Read-Host 'Enter a number range (eg. 1..5)'
If ($UserInput -match '^\d+\.\.\d+$')
{ $NumberRange = Invoke-Expression $UserInput }
Else { Write-Host 'Input not in correct format.' }
$NumberRange
Enter a number range (eg. 1..5): 2..6
2
3
4
5
6
我正在尝试找到一种方法来拥有一个具有读取主机的变量,您可以在其中以范围运算符格式输入数字。
我基本上想做以下事情
$domain=Domain.Host
$Servers = Read-Host "What servers do you want to check?" #this is where a user would input @(1..10)
$CompleteServer = $Servers$Domain
Get-Service -ComputerName $CompleteServer -Name "Service Name"
所以 $CompleteServer 将包含
01.domain.host
02.domain.host
...
10.domain.host
这有可能吗,至少有一个读取输入进入范围运算符?
Read-Host
我认为只能读取字符串。
如果你想让他们输入一个列表,你可以让他们用逗号或space分隔输入。
例如
$input = Read-Host 'enter input, separated by commas'
$inputList = $input -split ','
或
$input = Read-Host 'enter input, separated by space'
$inputList = $input -split ' '
如果用户需要输入长字符串,您可能希望他们输入换行符或其他内容:
$inputList = @()
Write-Host 'enter your input, when you finish one item, press enter, if you finish all the items, enter "END" and press enter'
$input = Read-Host 'enter the input'
while(input -nq 'END') {
$inputs.Add(input)
$input = Read-Host 'enter the input'
}
可以使用Invoke-Expression
,但要注意验证输入:
$UserInput =
Read-Host 'Enter a number range (eg. 1..5)'
If ($UserInput -match '^\d+\.\.\d+$')
{ $NumberRange = Invoke-Expression $UserInput }
Else { Write-Host 'Input not in correct format.' }
$NumberRange
Enter a number range (eg. 1..5): 2..6
2
3
4
5
6