别名类似功能
在 PowerShell 中,有许多方法可以实现相同的结果。这可以通过简单熟悉的 Hello World
示例很好地说明:
使用 Write-Host
:
Write-Host "Hello World"
使用 Write-Output
:
Write-Output 'Hello world'
值得注意的是,尽管 Write-Output
和 Write-Host
都写入屏幕,但存在细微差别。Write-Host
只写入 stdout(即控制台屏幕),而 Write-Output
写入 stdout AND 到输出[success]流,允许重定向 。重定向(和一般的流)允许将一个命令的输出作为输入引导到另一个命令,包括赋值给变量。
> $message = Write-Output "Hello World"
> $message
"Hello World"
这些类似的功能不是别名,但如果想要避免污染成功流,则可以产生相同的结果。
Write-Output
别名为 Echo
或 Write
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 中的所有别名导入到会话中一次。