別名類似功能

在 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 中的所有別名匯入到會話中一次。