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

[玩转系统] PowerShell Echo 等效项是什么?

作者:精品下载站 日期:2024-12-14 03:45:37 浏览:14 分类:玩电脑

PowerShell Echo 等效项是什么?


Echo 命令是使用批处理或 shell 脚本时向控制台输出内容的常用方法。但在 PowerShell 中,Echo 并不是一个实际的 cmdlet。那么PowerShell相当于输出什么东西呢?

编写脚本时,您经常需要向控制台输出一些内容来测试或调试脚本。例如,在旧的批处理脚本中,您可以使用 Echo 来实现这一点。但在 PowerShell 中,您实际上有多种选择。

在本文中,我们将了解 PowerShell 中的不同选项。

PowerShell 回声

在PowerShell中,您实际上可以使用Echo命令。但是,它不是实际的 cmdlet,而是 Write-Output cmdlet 的别名。

如果我们采用下面的示例,那么数组中的 4 个水果将显示在您的控制台中。

$fruitsAvailable = @("Apple", "Banana", "Orange", "Grapes")

$fruitsAvailable | ForEach-Object {
    echo $_
}

但您可能知道,在 PowerShell 中还具有 Write-Host cmdlet。您需要了解 Write-HostWrite-Output 之间的重要区别。

Write-Output cmdlet(以及别名 Echo)会将结果写入输出流。而 Write-Host cmdlet 会将结果返回到主机,通常是您的 PowerShell 控制台。

我们可以用下面的例子来展示差异。下面的代码将循环遍历水果数组并返回所有水果。

$results = $fruitsAvailable = @("Apple", "Banana", "Orange", "Grapes")

$results = $fruitsAvailable | ForEach-Object {
    Write-Host "Processing fruit $($_)"
    $_
}

如果运行上面的代码,那么您将在控制台中看到以下内容:

Processing fruit Apple
Processing fruit Banana
Processing fruit Orange
Processing fruit Grapes

如果您查看 results 变量,那么您将获得数组中所有水果的列表:

Apple
Banana
Orange
Grapes

但是如果我们将 Write-Host 更改为 Write-Output 会怎样? Write-Output 会将结果发送到输出流,在本例中是 $results 变量。但当您重定向输出时,这也可以是文本文件。

$results = $fruitsAvailable = @("Apple", "Banana", "Orange", "Grapes")

$results = $fruitsAvailable | ForEach-Object {
    Write-Host "Processing fruit $($_)"
    $_
}

因此,如果运行上面的代码,您将不会在控制台中看到任何内容。但是,如果我们查看 $results 变量,我们将看到以下内容:

Processing fruit Apple
Apple
Processing fruit Banana
Banana
Processing fruit Orange
Orange
Processing fruit Grapes
Grapes

何时使用写输出或写主机

从技术上讲,不需要 Write-Output cmdlet,因为写入输出流是 PowerShell 的默认行为。

因此,如果您想在控制台中显示脚本的进度,或者快速返回一个变量来测试脚本的一部分,那么 Write-Host 是最佳选择。 Write-Host 的优点是您还可以为控制台输出分配不同的颜色。

另一个需要记住的选项是 Write-Verbose。默认情况下,详细输出是隐藏的,但您可以通过在 PowerShell 会话中(或在脚本开头)将变量 $VerbosePreference 设置为继续来更改它。这样所有详细输出都会显示出来。

类似的选项是 Write-Debug cmdlet,您可以使用 $DebugPreference="Continue" 启用该选项

[玩转系统] PowerShell Echo 等效项是什么?

总结

回顾一下,您可以在 PowerShell 中使用 Echo,但实际上没有必要,并且有更好的选项来调试代码或将结果返回到控制台。

希望您喜欢这篇文章,如果您有任何疑问,请在下面发表评论。

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

取消回复欢迎 发表评论:

关灯