#powershell #colors #output
#powershell #Цвет #вывод
Вопрос:
Мне нужно изменить цвет текста в зависимости от выходных данных Test-Connection
-quiet командлета.
Если true — зеленый, а если False — красный.
Я пытаюсь использовать write-host, но безуспешно
$StartIP = Read-Host -Prompt 'Input Start IP'
$EndIP = Read-Host -Prompt 'Input End IP'
$results= ([int]$StartIP..[int]$EndIP) | % {"192.168.128.$($): $(Test-Connection -count 1 -comp 192.168.128.$($) -quiet)"}
Read-Host -Prompt "Press Enter to exit"
Комментарии:
1. Вы не используете write-host, также вывод отправляется в переменную — где, по-вашему, должен отображаться цвет?
Ответ №1:
Следуя вашему существующему коду:
$start = (Read-Host -Prompt Start) -as [int]
$end = (Read-Host -Prompt End) -as [int]
$start..$end | ForEach-Object {
$ip = "192.168.128.$_"
if (Test-Connection -Count 1 -Quiet -ComputerName $ip) {
"$ip TRUE" | Write-Host -ForegroundColor Green
}
else {
"$ip FALSE" | Write-Host -ForegroundColor Red
}
}
Комментарии:
1. Спасибо! @TheIncorrigible1