【发布时间】:2020-11-27 04:31:21
【问题描述】:
我正在设置我的 powershell 配置文件来创建常用命令的别名。 On Microsoft's documentation 它说,如果我想为带有参数的命令创建别名,我应该将别名的值设为执行该操作的函数。。但是,当我在命令行中输入函数的名称时,它的工作原理和别名一样。
换句话说,在上图中,如果我输入CD32,它的行为与我在命令行中输入Go 的行为相同
所以我的问题是:为什么我可以使用指向函数的别名?两者在功能上有区别吗?
【问题讨论】:
-
该文档的意思是,如果要为命令创建“别名”并将参数值指定为“别名”的一部分,则必须使用函数。您当然可以为带有参数的命令创建别名,并且可以在使用别名时指定这些参数,但是您不能为别名修复任何适当的参数。别名只是命令的别名,而不是具有特定值的命令。为此,您需要使用一个函数。
-
让我换个说法。上面的
CD32函数,因为要把参数C:\Windows\System32传递给Set-Location,所以必须做一个函数。如果您只是想为Set-Location创建一个别名,您可以使用别名,但它的功能与Set-Location完全相同,因此当您使用别名时,您还必须告诉它要设置的位置。这有什么意义吗? -
嗯,有道理。所以别名的行为就像它指向的命令一样,包括你如何给它参数。这是一种写命令的简写。
-
没错。那是...比我写的要清楚:)
标签: windows function powershell scripting alias