有没有办法在 Windows(powershell 或 cmd)中创建类似 bash 的别名?

有没有办法在 Windows(powershell 或 cmd)中创建类似 bash 的别名?

我想创建一个仍然可以接受输入的别名,例如:

alias ytx='youtube-dl -ciw -f bestaudio --yes-playlist

这在 Windows 中可行吗?

我试过bash 别名相当于 powershell 吗?但它不允许最后输入。

答案1

最简单的方法适用于任何 Windows 版本,即使用存储在PATH.

要将输入传递给批处理文件,请使用%*,其计算结果为“传递给批处理文件命令行的所有参数”,或者使用%1、、%2...%9来引用单个参数。

就我个人而言,我将批处理文件保存在 中C:\Batch,并将其放在我的 的开头PATH。运行批处理文件时,可以省略后缀.bat,以获得与 bash 别名类似的外观。

我自己举几个例子:

  • s3cmd.bat,其中包含:python c:\devtools\s3cmd-2.0.0\s3cmd %*。所有参数都直接传递给实际s3cmd程序。
  • clangcheck.bat,它是的简写: clang-check -analyze -extra-arg -Xclang -extra-arg -analyzer-output=text %*。这里,批处理参数与额外参数一起传递给clang-check
  • epoch_to_time.bat,将 Unix 纪元时间转换为可读的本地时间。
    它包含:perl -pe "s/([\d]{10})/localtime $1/eg;" %1。这里,%1是要转换的纪元时间,预计作为单个参数。

答案2

等效命令是 doskey 命令,您可以将其用作:

doskey ytx=youtube-dl -ciw -f bestaudio --yes-playlist $*

其中$*代表所有参数。

下面是一个回显其参数的小例子:

在此处输入图片描述

Doskey 也可以在 PowerShell 中使用。有关更多信息,请参阅 这个答案

要使 doskey 宏在会话间持久化,请参阅帖子 在Windows cmd中创建永久的DOSKEY

相关内容