get-member得到的方法和属性不全的问题。


PowerShell交流中心get-member得到的方法和属性不全的问题。
0
pwshroad asked 6 年 ago

比如:

$reg = [regex]”\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}”

$a = get-content a.txt

$ms = $reg.matches($a)

$ms.count

$ms|get-member 里却没有count的属性。。请老师详细解释下。

1 Answers
1
Best Answer
Mooser Lee 管理员 answered 6 年 ago

这个是 PowerShell 3.0 引入的语法糖,任何变量即使是Null也支持访问Count属性。

PS> $null.count
0
pwshroad replied 6 年 ago

不是啊,服务器2008R2上带的powershell1.0,,count属性只是举的一个例子。

Mooser Lee 管理员 replied 6 年 ago

兄弟,在我的生命中就没有见过PowerShell 1.0,你到是见鬼了。你肯定被C:\Windows\System32\WindowsPowerShell\v1.0这个目录给忽悠了。你的PowerShell至少是3.0,请使用$PSVersionTable 查看,另外你可以在PowerShell 中 运行PowerShell -version 2.0 ,启动2.0控制台,然后再测试你的脚本,你会发现确实没有count属性,刚好印证了我的观点。

pwshroad replied 6 年 ago

老师,你好。用$PSVersionTable 查看,显示是2.0;运行PowerShell -version 2.0,然后再测试上面的脚本,还是有count属性。。输入“$ms.” 再按Tab,可以看到有如count,isReadOnly等,用get-member都看不到

pwshroad replied 6 年 ago

老师,你好。用$PSVersionTable 查看,显示是2.0;运行PowerShell -version 2.0,然后再测试上面的脚本,还是有count属性。。输入“$ms.” 再按Tab,可以看到有如count,isReadOnly等,用get-member都看不到