gpt4 book ai didi

powershell - 在powershell中将参数传递给Set-Alias的正确方法是什么?

转载 作者:行者123 更新时间:2023-12-04 02:20:17 25 4
gpt4 key购买 nike

一点背景:

我在工作时在 windows xp 上使用 PowerShell,并在 Microsoft.PowerShell_profile.ps1 中设置了一堆有用的快捷方式在 My Documents , 尝试模拟 Mac 环境
灵感来自 Ryan Bates's shortcuts

我有这样的事情:

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

关于powershell - 在powershell中将参数传递给Set-Alias的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2677528/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com