簡體   English   中英

在powershell中將參數傳遞給Set-Alias的正確方法是什么?

[英]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.

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