在PowerShell中是否有用于检查别名的命令?

Ibr*_*taz 15 powershell powershell-3.0

是否有PowerShell命令允许您检查是否存在别名?

(我一直在网上看看,它看起来不像.)

Dun*_*can 24

你可以使用Test-Path这个:

PS C:\> test-path alias:l*
True
PS C:\> test-path alias:list*
False
Run Code Online (Sandbox Code Playgroud)

只需使用:

if (Test-Path alias:list*) { ... }
Run Code Online (Sandbox Code Playgroud)

要么

if(!(Test-Path alias:list*)) { ... }
Run Code Online (Sandbox Code Playgroud)

如果你想在别名不存在时做某事.

正如其他人写的Get-Alias那样,也可以,但是Test-Path会避免构建别名列表,所以如果你关心那么可能会稍微快一些.

进一步说明:

Powershell使用路径名访问的不仅仅是文件,因此C:前缀允许您访问驱动器C上的文件,alias:允许您访问别名,而其他限定符允许您访问诸如函数,命令,注册表项,安全证书等内容. .所以这里alias:l*是一个通配符路径名,它将匹配以字母开头的所有别名,l其方式C:l*与匹配l驱动器C的根目录中的所有文件完全相同.

Test-Path是一个命令行开关,它测试路径是否仅在至少一个现有对象与该路径匹配时才引用具有True结果的现有对象.所以通常你会用它来测试一个文件是否存在但同样你可以测试是否存在任何可用合适的限定符来寻址的东西.

  • @Andrew也许如果你说的到底是什么你不明白那么我可以改进答案?在我看来,当被问到“是否有一个命令来检查别名是否存在”时,我说“你可以为此使用`Test-Path`”,这是一个明确的答案,但我很乐意扩展任何不清楚的内容。 (2认同)
  • @Andrew,我添加了一些进一步的解释,但我同意 Powershell 一开始可能会令人困惑。它完全不同于任何其他 shell 脚本语言,因为您使用的所有内容都是对象而不是文本,但同样它也不同于普通的编程语言,因为它都是关于命令和管道的,在这种情况下,许多对象的公开方式就像它们是文件系统的一部分。 (2认同)

Pau*_*aul 11

我认为Get-Alias就是你要找的.

MS文档:http: //technet.microsoft.com/en-gb/library/ee176839.aspx

IF示例:

$ar = get-alias -name f* 
if($ar.count -lt 1){ do stuff }
Run Code Online (Sandbox Code Playgroud)

  • 你面前没有powershell提示吗? (4认同)

Tre*_*van 5

是的,使用Get-Alias命令.

例:

Get-Alias -Name spps;

# If statement example
if (Get-Alias -Name spps) {
    # Do something here
}
Run Code Online (Sandbox Code Playgroud)

要获取处理别名的所有命令的列表,请使用 Get-Command

Get-Command -Name *alias;
Run Code Online (Sandbox Code Playgroud)