Git 如何将此bash别名转换为(Windows)doskey别名?

Git 如何将此bash别名转换为(Windows)doskey别名?,git,bash,batch-file,npm,Git,Bash,Batch File,Npm,我正在将一些bash别名移植到doskeybatch命令,尤其是其中一个命令,我遇到了难以置信的困难。有人认为他们能帮忙吗 bash别名是: alias gitrel='if [ -n "$(npm version patch)" ]; then git push && git push --tags; fi' 问题: 如何从npmversion补丁运行并获取返回值 或者如何在doskey命令中执行控制流逻辑 您可以使用FOR/F循环执行此操作,但仅当npn只打印一行或不打印

我正在将一些bash别名移植到
doskey
batch命令,尤其是其中一个命令,我遇到了难以置信的困难。有人认为他们能帮忙吗

bash别名是:

alias gitrel='if [ -n "$(npm version patch)" ]; then git push && git push --tags; fi'
问题

  • 如何从
    npm
    version补丁运行并获取返回值
  • 或者如何在
    doskey
    命令中执行控制流逻辑

您可以使用FOR/F循环执行此操作,但仅当npn只打印一行或不打印任何行时,如果它可以打印两行,此代码将被推送多次

doskey alias=for /F "delims=" %a in ('npm version patch') do @( git push && git push --tags )

别名不是脚本。事实上,默认情况下,在脚本内部禁用别名。它们是供互动使用的。很公平,我改了标题。关键仍然是在批处理文件中的一组别名在每个
cmd.exe
会话开始时运行。作为别名,我将作为bash函数。将bash函数转换为MS-DOS的最简单方法可能是为每个函数创建单独的批处理文件。为什么不创建一个小的批处理文件库,将它们放在一个合理的位置,然后将该位置添加到您的
%PATH%
?@RodyOldenhuis对于我移植的所有其他别名,我已经成功地用
doskey
一行程序实现了这一点,甚至用
$t
分隔多个命令都没有问题。我没有为这个特定的补丁做任何尝试,因为我不知道如何从
npm版本补丁
运行并获取返回值,或者如何在
doskey
命令中执行控制流逻辑。