为什么这样(或如何)?

时间:2013-08-23 17:14:28

标签: variables powershell dynamic

今天我的电子邮件中收到了一封关于获取未使用的驱动器号的电子邮件This was their solution

Get-ChildItem function:[d-z]: -Name | Where-Object {-not (Test-Path -Path $_)}

PowerShell Magazine BrainTeaser had this for a solution, same thing.

ls function:[d-z]: -n|?{!(test-path $_)}|random

我不知道function:[d-z]:是如何运作的。我知道对于'd'到'z'之间的每个字符都会被使用,但我不知道为什么语法有效。

测试Get-ChildItem function:[d-a]: -Name会向您显示错误Get-ChildItem : Cannot retrieve the dynamic parameters for the cmdlet. The specified wildcard pattern is not valid:[d-a]:

那是动态参数吗?怎么没有显示Get-Help gci -full

1 个答案:

答案 0 :(得分:7)

function:是一个PSDrive,它公开了当前会话中定义的一组函数。 PowerShell为每个单字母驱动器创建一个函数,命名为字母后跟冒号。

因此,function:[d-z]:列出了从“d:”到“z:”

的函数

function:[d-a]:不起作用,因为d-a不是一系列字母。