代码之家  ›  专栏  ›  技术社区  ›  Esko

如何在执行实际命令之前创建更改环境变量的alias命令

  •  1
  • Esko  · 技术社区  · 14 年前

    首先,我很抱歉,这是一个“给我一个代码”的问题。不过,我保证会从你的答案中学到东西!这意味着你可以随意使用 Socratic method 如果你觉得有必要的话。


    我现在正在发展( 维护和建造新的 )多个站点使用 Grails 它的工作方式是为执行各种任务提供一个命令行shell。

    这一切都很好,但是在不同版本之间切换有点麻烦,因为它都由一个名为 GRAILS_HOME 设置为指向如下目录 C:\grails\grails-1.2.3\ .

    现在,我希望能做的是,而不是像这样做:

    grails create-app MyWebApp
    grails list-plugins -repository=myPluginRepo
    grails install-plugin myPlugin
    

    然后注意到我使用了错误的版本,我不得不回去,我宁愿这样做

    g135 create-app MyWebApp
    g135 list-plugins -repository=myPluginRepo
    g135 install-plugin myPlugin
    

    这会立即告诉我我正在使用Grails 1.3.5。

    我在创建这样一个psh脚本时遇到的问题是,我在创建脚本方面非常差劲。我确实尝试过这样做,但在psh自身发出了五条神秘的错误消息之后,我决定只征求建议。

    加分: 如果我可以参数化别名调用来指定版本( 有点像 g[1.3.5] other params )然后将数字追加到环境变量值, 这对我来说是最方便的解决办法。

    1 回复  |  直到 14 年前
        1
  •  4
  •   craika    14 年前

    这应该做到:

    Function PSGrails($ver)
        {
        $env:GRAILS_HOME='c:\grails\grails-{0}\' -f $ver
        grails $args
        }
    

    通过在函数名后面直接指定版本号来运行它:

    psgrails 1.3.5 create-app MyWebApp     
    psgrails 1.3.5 list-plugins -repository=myPluginRepo     
    psgrails 1.3.5 install-plugin myPlugin