【问题标题】:How to make an alias for a function in batch?如何批量为函数创建别名?
【发布时间】:2020-04-11 02:12:46
【问题描述】:

我想批量为函数创建一个别名,如下所示:

echo off 
DOSKEY getMessage=call :message

:message
  SET answer=
  SET /P answer=What is your message? :
  IF EXIST %answer% (
  echo %answer%
) else(
 goto mesage
)

我没有批处理经验,但我想用一些 git 命令创建一个别名。

【问题讨论】:

  • 你必须把goto :EOF放在doskey命令行之后,否则在下一行继续执行。你可能指的是if defined 而不是if exist,对吧?
  • 我想要 if answer != null 可能你是对的,因为存在检查这样一个变量是否存在,我只是设置答案。我说的对吗?
  • 没错,if defined检查变量是否定义,意思是不为空...
  • 澄清一下:if exist 检查是否存在文件if defined 检查是否定义了变量
  • 这是无效的语法,) else()else () else ( 都可以接受。

标签: batch-file doskey


【解决方案1】:

我发现了怎么做,对于对此感兴趣的人,我就是这样做的:

DOSKEY getMessage=here is a path to another .cmd file where is your script

【讨论】:

    【解决方案2】:

    这里有一些创建简单和复杂别名的方法:

    • $G or $g - 重定向输出。使用这些特殊字符中的任何一个将输出发送到设备或文件而不是屏幕。该字符相当于输出的重定向符号 (>)。
    • $G$G or $g$g - 将输出附加到文件的末尾。使用这些双字符中的任何一个将输出附加到现有文件,而不是替换文件中的数据。这些双字符相当于输出的附加重定向符号 (>>)。
    • $L or $l - 重定向输入。使用这些特殊字符中的任何一个来从设备或文件而不是从键盘读取输入。此字符等效于输入 ($B or $b - 将宏输出发送到命令。这些特殊字符等价于使用管道(**
    • $T or $t - 分隔命令。当您创建宏或在 doskey 命令行上键入命令时,请使用这些特殊字符中的任何一个来分隔命令。这些特殊字符相当于在命令行中使用与号 (&)。
    • $$ - 指定美元符号字符 ($)。
    • $1 through $9 - 表示您在运行宏时要指定的任何命令行信息。特殊字符 $1 到 $9 是批处理参数,使您能够在每次运行宏时在命令行上使用不同的数据。 doskey 命令中的 $1 字符类似于批处理程序中的 %1 字符。
    • $* - 表示您在键入宏名称时要指定的所有命令行信息。特殊字符 $* 是一个可替换参数,类似于批处理参数 $1 到 $9,但有一个重要区别:在宏名称之后在命令行中键入的所有内容都将替换宏中的 $*。

    一个创建别名的示例,该别名从用户那里获取一个 url 并对其进行 ping 操作:

    doskey getping="set /p URL=Enter an URL:$Tping %URL%"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-13
      • 1970-01-01
      • 1970-01-01
      • 2015-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多