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