Powershell 通过函数扩展别名 3


在Powershell中设置别名的确方便快捷,但是在设置别名的过程中并设置参数的相关信息。尽管别名会自动识别参数,但是如何把经常使用的参数默认设定在别名里面呢?例如Test-Connection -Count 2 -ComputerName,让-“-Count 2” 固化在别名中。
这时简单的别名无法完成上述需求,可以通过函数来完成它,并且一旦把函数拉过来,定义别名会变得更加灵活。

PS C:\PS> function test-conn { Test-Connection  -Count 2 -ComputerName $args}
PS C:\PS> Set-Alias tc test-conn
PS C:\PS> tc localhost

Source        Destination     IPV4Address      IPV6Address                              Bytes    Time(ms)
------        -----------     -----------      -----------                              -----    --------
test-me-01   localhost       127.0.0.1        ::1                                      32       0
test-me-01   localhost       127.0.0.1        ::1                                      32       0

有了函数牵线,别名可以完成更高级更强大的功能,其中$args为参数的占位符。

本文链接: https://www.pstips.net/powershell-extend-alias-by-function.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!

关于 Mooser Lee

我是一个Powershell的爱好者,创建了PowerShell中文博客,热衷于Powershell技术的搜集和分享。本站部分内容来源于互联网,不足之处敬请谅解,并欢迎您批评指正。

回复 Q1500019049 取消回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

3 条评论 “Powershell 通过函数扩展别名

  • Jason

    博主你好,关于最后“其中$args为参数的占位符,经测试,发现这个占位符必须以$args命名,否则不能识别,会抛出异常”
    我认为是不对的,抛出异常的原因是因为tc是test-conn的别名,在构建test-conn函数时并没有声明参数,所以测试时会抛出异常,如果声明了参数则不会,例如:function test-conn{param ($name) Test-Connection -Count 2 -ComputerName $name},$args是PowerShell的默认参数名称,在没有显式的声明参数的函数中,$args可以临时使用。

    不知道我这样理解是不是对的。