下面是一些背景知识:
我在工作中使用windows xp上的PowerShell,并且在My Documents的Microsoft.PowerShell_profile.ps1中设置了一些有用的快捷方式,试图模仿受Ryan Bates's shortcuts启发的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那么,我如何正确地修改我的函数,以获取我发送给函数的参数呢?
谢谢你!!
发布于 2010-04-21 02:35:01
您的函数不接受任何参数,因此没有参数被传递也就不足为奇了。
你应该这样写它:
function Rails-Generate { ruby script/generate $args }注意,Invoke-Expression在这里是不必要的。PowerShell是一个外壳--它可以直接调用其他程序。
演示:
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] = bazhttps://stackoverflow.com/questions/2677528
复制相似问题