[英]What is a proper way to pass a parameter to Set-Alias in powershell?
一點背景:
我在windows xp上使用PowerShell工作,我在My Documents
中的Microsoft.PowerShell_profile.ps1
中設置了一堆有用的快捷方式,試圖模仿受Ryan Bates的快捷方式啟發的Mac環境
我有類似的東西:
Set-Alias rsc Rails-Console
function Rails-Console {Invoke-Expression "ruby script/console"}
在命令提示符下,我說:
rsc #it calls the proper command
但是這不能正常工作
Set-Alias rsg Rails-Generate
function Rails-Generate {Invoke-Expression "ruby script/generate"}
所以當我這樣做時:
rsg model User
應該叫
ruby script/generate model User
所有它都是
ruby script/generate #Dumping my params
那么我如何正確地修改我的函數以獲取我發送給函數的參數?
謝謝!!
你的函數沒有任何參數,因此沒有任何參數通過也就不足為奇了。
你應該像這樣寫:
function Rails-Generate { ruby script/generate $args }
請注意,此處不需要Invoke-Expression
。 PowerShell是一個shell - 直接調用其他程序沒有問題。
演示:
PS Home:\> Set-Alias foo Call-Foo
PS Home:\> function Call-Foo { args }
PS Home:\> foo bar baz
argv[0] = Somewhere\args.exe
PS Home:\> function Call-Foo { args $args }
PS Home:\> foo bar baz
argv[0] = Somewhere\args.exe
argv[1] = bar
argv[2] = baz
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.