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