别名类似功能

在 PowerShell 中,有许多方法可以实现相同的结果。这可以通过简单熟悉的 Hello World 示例很好地说明:

使用 Write-Host

Write-Host "Hello World"  

使用 Write-Output

Write-Output 'Hello world'

值得注意的是,尽管 Write-OutputWrite-Host 都写入屏幕,但存在细微差别。Write-Host 写入 stdout(即控制台屏幕),而 Write-Output 写入 stdout AND 到输出[success]流,允许重定向 。重定向(和一般的流)允许将一个命令的输出作为输入引导到另一个命令,包括赋值给变量。

> $message = Write-Output "Hello World"
> $message
"Hello World"

这些类似的功能不是别名,但如果想要避免污染成功流,则可以产生相同的结果。

Write-Output 别名为 EchoWrite

Echo 'Hello world'
Write 'Hello world'

或者,只需输入 Hello world

'Hello world'

所有这些都将导致预期的控制台输出

Hello world

PowerShell 中别名的另一个示例是旧命令提示符命令和 BASH 命令与 PowerShell cmdlet 的公共映射。以下所有内容都会生成当前目录的目录列表。

C:\Windows> dir
C:\Windows> ls
C:\Windows> Get-ChildItem

最后,你可以使用 Set-Alias cmdlet 创建自己的别名! 作为一个例子,让我们的 alhas Test-NetConnection,它本质上是 PowerShell 等同于命令提示符的 ping 命令,ping

Set-Alias -Name ping -Value Test-NetConnection

现在你可以使用 ping 而不是 Test-NetConnection! 请注意,如果别名已被使用,你将覆盖该关联。

Alias 将活着,直到会话活跃。关闭会话并尝试运行你在上一个会话中创建的别名后,它将无效。要解决此问题,你可以在开始工作之前将 excel 中的所有别名导入到会话中一次。