当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] PowerShell 写入控制台 |在 PowerShell 中写入控制台如何工作?

作者:精品下载站 日期:2024-12-14 05:00:47 浏览:17 分类:玩电脑

PowerShell 写入控制台 |在 PowerShell 中写入控制台如何工作?


[玩转系统] PowerShell 写入控制台 |在 PowerShell 中写入控制台如何工作?

PowerShell 写入控制台的定义

PowerShell写入控制台命令的目的是在控制台上写入信息、数据、输出、进度、详细、变量、警告,我们可以使用不同的颜色来装饰控制台上显示的输出,询问用户输入,写入当脚本或命令出现问题时,控制台上出现错误消息,写入详细信息以显示后台运行的命令进程并写入用户注意的信息。

语法:

有多种命令用于控制台显示,如下所示。

Write-Host
[[-Object] <Object>]
[-NoNewline]
[-Separator <Object>]
[-ForegroundColor <ConsoleColor>]
[-BackgroundColor <ConsoleColor>]
[<CommonParameters>]
Write-Output
[-InputObject] <PSObject[]>
[-NoEnumerate]
[<CommonParameters>]
Write-Warning
[-Message] <String>
[<CommonParameters>]
Write-Verbose
[-Message] <String>
[<CommonParameters>]
Write-Information
[-MessageData] <Object>
[[-Tags] <String[]>]
[<CommonParameters>]
Read-Host
[[-Prompt] <Object>]
[-MaskInput]
[<CommonParameters>]
Read-Host
[[-Prompt] <Object>]
[-AsSecureString]
[<CommonParameters>]

在 PowerShell 中写入控制台如何工作?

PowerShell 有多种方法可以在显示控制台上写入输出或自定义输出。当我们直接在 PowerShell 控制台上写入该行时,它会显示该字符串。例如,

"This is a display output"

输出:

[玩转系统] PowerShell 写入控制台 |在 PowerShell 中写入控制台如何工作?

当我们连接字符串时,

"This is a display output" + " This is a string"

输出:

[玩转系统] PowerShell 写入控制台 |在 PowerShell 中写入控制台如何工作?

所以基本上当我们不使用任何命令来显示输出时,它会自动将输出管道化到 Out-Host 命令。所以第一个输入类似于,
“这是显示输出”|主机外

输出:

[玩转系统] PowerShell 写入控制台 |在 PowerShell 中写入控制台如何工作?

同样,当我们使用任何在控制台上显示输出的 cmdlet 时,它默认使用隐藏的 cmdlet Out-Host 在控制台上显示输出。命令输出通过管道传输到 Out-Host 进行显示,但此过程是隐藏的。

Get-Process

输出:

[玩转系统] PowerShell 写入控制台 |在 PowerShell 中写入控制台如何工作?

上面的命令类似于,

Get-Process | Out-Host

语法中还显示了其他命令,如 Write-Host、Write-Output、Write-Error、Write-Verbose 等,这些命令可以自定义输出,如特定的前景色或背景色、用户输入、写入详细内容以在控制台上显示。

示例

下面的示例给出了更多解释。

示例#1:使用 Write-Output 将输出写入控制台。

Write-Output 命令用于在 PowerShell 控制台上写入输出。

Write-Output "This is a PowerShell"

输出:

[玩转系统] PowerShell 写入控制台 |在 PowerShell 中写入控制台如何工作?

我们还可以将字符串存储在变量中并写入输出。

$str = "This is a PowerShell Output"
Write-Output $str

输出:

[玩转系统] PowerShell 写入控制台 |在 PowerShell 中写入控制台如何工作?

它还接受管道输入。

"This is a PowerShell" | Write-Output

输出:

[玩转系统] PowerShell 写入控制台 |在 PowerShell 中写入控制台如何工作?

如果将 Write-Output 命令的输出存储到文件中,则不会在控制台上显示输出。

Write-Output "This is a PowerShell" | Out-File C:\Temp\output.txt

输出:

[玩转系统] PowerShell 写入控制台 |在 PowerShell 中写入控制台如何工作?

此命令对于在控制台上进行写入非常有用,因为我们无法使用 PowerShell 工作流和 Azure PowerShell Runbook 等 Write-Host。

示例#2:使用 Write-Host 在控制台上写入输出。

Write-Host 命令的作用是在控制台上显示输出,并带有装饰背景和前景色。

Write-Host "This is a PowerShell"

输出:

[玩转系统] PowerShell 写入控制台 |在 PowerShell 中写入控制台如何工作?

具有不同的背景和前景色。

Write-Host "This is a PowerShell" -BackgroundColor Blue -ForegroundColor White

输出:

[玩转系统] PowerShell 写入控制台 |在 PowerShell 中写入控制台如何工作?

我们还可以通过管道输出。

"This is a PowerShell" | Write-Host -BackgroundColor DarkGray -ForegroundColor DarkGreen

输出:

[玩转系统] PowerShell 写入控制台 |在 PowerShell 中写入控制台如何工作?

如果我们尝试将输出存储到文件中,此命令将不允许您这样做,但它仍然会在控制台上显示输出。

Write-Host "This is a PowerShell" -BackgroundColor Blue -ForegroundColor White | Out-File C:\Temp\Hostout.txt

输出:

[玩转系统] PowerShell 写入控制台 |在 PowerShell 中写入控制台如何工作?

上面的输出不会在 Hostout.txt 文件中存储任何内容。它将是空白的。

示例#3:Write-Verbose 将输出写入控制台。

Verbose 是用于在显示屏上写入命令处理信息的消息流,但它需要特殊参数 -Verbose 来显示消息。例如,

下面的行不会显示任何内容,因为我们没有使用 -Verbose 参数。

Write-Verbose "This is the PowerShell"

输出:

[玩转系统] PowerShell 写入控制台 |在 PowerShell 中写入控制台如何工作?

但是一旦我们添加 -verbose 参数,

Write-Verbose "This is the PowerShell" -Verbose

输出:

[玩转系统] PowerShell 写入控制台 |在 PowerShell 中写入控制台如何工作?

PowerShell中几乎所有的cmdlet都使用-Verbose参数,这样我们就不需要编写所有信息。

$services = "Spooler", "wuauserv"
Get-service $services | Stop-Service -Force -Verbose

输出:

[玩转系统] PowerShell 写入控制台 |在 PowerShell 中写入控制台如何工作?

示例#4:Write-Error 在控制台上显示错误。

Write-Error message 对于在控制台上写入错误消息非常有用。

$service = 'Spooler1'
if(Get-Service -Name $service -EA Ignore){
Write-Output "$service is exist"
}
else{
Write-Error "$service doesn't exist"
}

输出:

[玩转系统] PowerShell 写入控制台 |在 PowerShell 中写入控制台如何工作?

您还可以使用与 Write-Error 命令关联的不同参数,例如类别、ErrorID、异常等。

Write-Error -Message "Error: Too many input values." -Category InvalidArgument -ErrorId B1

输出:

[玩转系统] PowerShell 写入控制台 |在 PowerShell 中写入控制台如何工作?

示例 #5:在控制台上写入的 Read-Host 命令。

Read-Host 命令获取用户的输入并将其传递给另一个 cmdlet。我们还可以使用此命令在存储消息后将消息显示在控制台上。例如,

Read-Host "Enter Message"
Enter Message: This is a PowerShell input

输出:

[玩转系统] PowerShell 写入控制台 |在 PowerShell 中写入控制台如何工作?

示例#6:使用 System.Console 类在控制台上写入。

我们可以使用.Net类系统。 Console 将输出写入控制台,为此,它使用以下方法

Write() and WriteLine().
[System.Console]::Write('This is a PowerShell')

输出:

[玩转系统] PowerShell 写入控制台 |在 PowerShell 中写入控制台如何工作?

Using WriteLine() method.
[System.Console]::WriteLine( "(d) Short date: . . . . . . . {0:d}`n" +
"(D) Long date:. . . . . . . . {0:D}`n" +
"(t) Short time: . . . . . . . {0:t}`n" +
"(T) Long time:. . . . . . . . {0:T}`n" +
"(f) Full date/short time: . . {0:f}`n" +
"(F) Full date/long time:. . . {0:F}`n"
, (Get-Date))

输出:

[玩转系统] PowerShell 写入控制台 |在 PowerShell 中写入控制台如何工作?

结论

PowerShell 引入了许多用于在控制台上编写的有用命令,这取决于工作的性质。例如,假设我们想要显示错误消息,我们可以将文本的背景颜色设置为红色或使用 Write-Error 命令。如果您想编写可以显示详细信息的脚本,请使用 Write-Verbose 命令等。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯