我想创建一个仍然可以接受输入的别名,例如:
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。