String Message 函数,回显到屏幕,改变消息的颜色
Function with String Message, echos to screen, change the color of message
大家早上好,
已解决
两种反应齐头并进。非常感谢 Scepticalist 和 Wasif Hasan 提供的示例!!
我有一个带有消息参数的日志记录函数。通过该函数,它使用绿色文本颜色编写消息。有没有办法改变日志中某些消息的颜色?下面是函数。
Function Get-Logger {
param(
[Parameter(Mandatory=$True)]
[String]$message
)
$TimeStamp = Get-Date -Format "MM-dd-yyy hh:mm:ss"
Write-Host $TimeStamp -NoNewline
Write-Host `t $message -ForegroundColor Green
$logMessage = "[$TimeStamp] $message"
$logMessage | Out-File -Append -LiteralPath $VerboseLogFile
}
例如,当调用日志函数时,它会以绿色文本回显消息,这很好。但是如果我想使用日志记录功能将 headers 部分的文本更改为黄色,有没有办法做到这一点?下面是我要说的
Get-Logger "Hello Word Starting" -Foregroundcolor yellow -nonewline
像这样?
Function Get-Logger {
param(
[Parameter(Mandatory=$True)][String]$message,
[validatescript({[enum]::getvalues([system.consolecolor]) -contains $_})][string]$messagecolor,
[switch]$nonewline
)
$TimeStamp = Get-Date -Format "MM-dd-yyy hh:mm:ss"
If ($nonewline){
Write-Host `t $message -ForegroundColor $($messagecolor) -nonewline
}
Else {
Write-Host `t $message -ForegroundColor $($messagecolor)
}
$logMessage = "[$TimeStamp] $message"
$logMessage | Out-File -Append -LiteralPath $VerboseLogFile
}
然后:
Get-Logger "Hello Word Starting" -messagecolour yellow -nonewline
您需要添加另一个开关"NoNewLine"。所以在参数块中添加:
[switch]$nonewline
并且在函数体中,做:
If ($nonewline){
Write-Host `t $message -ForegroundColor $($messagecolour) -nonewline
}
Else {
Write-Host `t $message -ForegroundColor $($messagecolour)
}
您现在可以在参数块上添加验证脚本来验证颜色:
[validatescript({[enum]::getvalues([system.consolecolor]) -contains $_})][string]$messagecolor
感谢@Scepticalist
大家早上好, 已解决 两种反应齐头并进。非常感谢 Scepticalist 和 Wasif Hasan 提供的示例!!
我有一个带有消息参数的日志记录函数。通过该函数,它使用绿色文本颜色编写消息。有没有办法改变日志中某些消息的颜色?下面是函数。
Function Get-Logger {
param(
[Parameter(Mandatory=$True)]
[String]$message
)
$TimeStamp = Get-Date -Format "MM-dd-yyy hh:mm:ss"
Write-Host $TimeStamp -NoNewline
Write-Host `t $message -ForegroundColor Green
$logMessage = "[$TimeStamp] $message"
$logMessage | Out-File -Append -LiteralPath $VerboseLogFile
}
例如,当调用日志函数时,它会以绿色文本回显消息,这很好。但是如果我想使用日志记录功能将 headers 部分的文本更改为黄色,有没有办法做到这一点?下面是我要说的
Get-Logger "Hello Word Starting" -Foregroundcolor yellow -nonewline
像这样?
Function Get-Logger {
param(
[Parameter(Mandatory=$True)][String]$message,
[validatescript({[enum]::getvalues([system.consolecolor]) -contains $_})][string]$messagecolor,
[switch]$nonewline
)
$TimeStamp = Get-Date -Format "MM-dd-yyy hh:mm:ss"
If ($nonewline){
Write-Host `t $message -ForegroundColor $($messagecolor) -nonewline
}
Else {
Write-Host `t $message -ForegroundColor $($messagecolor)
}
$logMessage = "[$TimeStamp] $message"
$logMessage | Out-File -Append -LiteralPath $VerboseLogFile
}
然后:
Get-Logger "Hello Word Starting" -messagecolour yellow -nonewline
您需要添加另一个开关"NoNewLine"。所以在参数块中添加:
[switch]$nonewline
并且在函数体中,做:
If ($nonewline){
Write-Host `t $message -ForegroundColor $($messagecolour) -nonewline
}
Else {
Write-Host `t $message -ForegroundColor $($messagecolour)
}
您现在可以在参数块上添加验证脚本来验证颜色:
[validatescript({[enum]::getvalues([system.consolecolor]) -contains $_})][string]$messagecolor
感谢@Scepticalist