修改 Doskey 宏如何根据传递给它的参数将参数传递给命令

修改 Doskey 宏如何根据传递给它的参数将参数传递给命令

我有一个非常简单的 doskey 宏

DOSKEY s="C:\Program Files (x86)\Git\bin\sh.exe" --login

因此我可以通过以下方式从命令提示符切换到 git shell:s

但有时我只想在 shell 中执行一条命令并返回命令行。为此,我要么进入 shell,执行操作,然后退出。或者我可以修改 doskey 宏

DOSKEY s="C:\Program Files (x86)\Git\bin\sh.exe" --login -c "$*"

但这意味着我现在不能用它来做前者,即进入shell,用于执行仅有的现在。

我想知道我是否可以根据我是否向其传递了另一个参数来有条件地在两者之间进行选择。所以s会执行前者,但s echo hello会执行后者。

有没有办法做到这一点?

答案1

您可以在宏定义中使用任何标准 CMD.EXE 命令。IF 命令可以测试您是否至少传递了一个参数并相应地进行分支。

doskey s=if $1. equ . ("C:\Program Files (x86)\Git\bin\sh.exe" --login) else "C:\Program Files (x86)\Git\bin\sh.exe" --login -c "$*"

相关内容