我开始编写一个函数来测试有效的IP地址并构建。我的代码工作正常,但是,当IP有效时,它会将有效的IP写入屏幕。由于我将添加到此函数,其中最终输出将是IP地址等,我想以某种方式抑制它。
do {
$ip=$(read-host "Enter an IP address")
[ref]$a = $null
$inputOk = [system.net.IPAddress]::tryparse($ip,$a)
if ($inputOk -eq $false) {
write-warning ("'{0}' is not a valid IP address, try again." -f $ip)
}
} until ($inputOk)
输出如下:
Enter an IP address: 127.0.0.1
127.0.0.1
我希望不返回刚刚输入的有效IP。
答案 0 :(得分:1)
也许这可以帮到你:
Function Test-IP {
[CmdletBinding()]
Param (
$IP
)
do {
$IP = Read-Host "Enter an IP address"
$Result = [System.Net.IPAddress]::TryParse($IP,[Ref]$null)
if ($Result) {
Write-Verbose "Valid IP found: $IP"
<#
Do stuff here with the valid IP
#>
}
else {
Write-Warning ("'{0}' is not a valid IP address, try again." -f $ip)
}
} until ($Result)
}
# See progress messages:
Test-IP -Verbose
# Without progress messages
Test-IP
如果您创建的函数包含[CmdLetBinding()]
,则可以使用Verbose
开关。要显示脚本/函数的进度,这是要走的路。如果您不想查看函数中发生的情况,只需省略Verbose
开关。