簡體   English   中英

具有功能和開關的PowerShell Native Cmdlet Set-Alias

[英]PowerShell Native Cmdlet Set-Alias with Function and Switch

問題:是否可以設置同時調用函數和開關的別名?

這是我正在使用的一個例子。

Set-Alias -Name myidea -Value 'Test-FunctionIdea -SwitchIdea' 
function Test-FunctionIdea {
  param(
    [switch]$SwitchIdea
  )
  if($SwitchIdea)
  {
    Write-Host 'Good Idea'
  }
}

這是我遇到的錯誤:

myidea : The term 'Test-FunctionIdea -SwitchIdea' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if 
a path was included, verify that the path is correct and try again.
At line:1 char:1
+ myidea
+ ~~~~~~
    + CategoryInfo          : ObjectNotFound: (Test-FunctionIdea -SwitchIdea:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

如果有可能請告訴我它是如何完成的。 我在互聯網上搜索了這個並沒有得到任何結果。

您可以檢查$MyInvocation.InvocationName並調整函數內的參數:

function Some-Function([switch] $foo) {
     if ($MyInvocation.InvocationName -eq 'foo') { $foo = $true }
}

Set-Alias foo Some-Function

[通常可以忽略不計]的優點是它不會為新的函數范圍創建額外的執行上下文。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM