首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >试图在powershell中创建包含选项的别名

试图在powershell中创建包含选项的别名
EN

Stack Overflow用户
提问于 2022-07-15 18:43:00
回答 1查看 43关注 0票数 1

我的目标是在最后有一个别名来运行带有-o的命令。

代码语言:javascript
复制
PS C:\Users\XXXX> vlab -o  <various different arguments>

我试图设置别名,但Set-Alias将-o识别为参数选项,并将其放置在单引号或双引号中失败。

代码语言:javascript
复制
> set-alias vlab 'vlab -o'
> vlab
vlab : The term 'vlab -o' is not recognized as the name of a cmdlet, function, script file, or operable program.

还设置了一个带有函数的profile.ps1,但是当我运行它时,它就挂起了。

代码语言:javascript
复制
Function VlabSpeed {
     vlab -o
}
Set-Alias vlab VlabSpeed

有可能设置这样的别名吗?如果是,怎么做?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-15 22:39:25

概述:

  • PowerShell别名只能将名称映射到另一个命令 name 或可执行的文件路径--与Bash不同的是,Bash、定义<代码>E 112参数<代码>E 213<代码>E 114作为映射的一部分是E 215E 116notE 217 supported.

>

要合并参数,确实需要一个函数,而不是别名:

  • Inside这个函数,您可以使用 @args 将任何参数传递给另一个命令,如Santiago Squarzon所指出的。

  • --没有必要同时使用别名和函数--只需将函数直接命名为您想要的短名称。

如果您的短(函数)名称与它包装的外部程序的文件名相同,则需要将这两个名称disambiguate ,以避免无限递归。

Windows上的

代码语言:javascript
复制
- Use the external program's _filename extension_, typically `.exe`:

函数vlab { vlab.exe -o @args }

类Unix平台上的

代码语言:javascript
复制
- Given that executables there (typically) have _no_ filename extension, use the _full path_ to disambiguate:

函数vlab { /path/to/vlab -o @args }

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72998408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档