为了偷懒,利用powershell中的ScriptBlock,然后用了个循环来输出多个Performance data 类似格式的PropertyBag。
脚本从一个web页面取xml 文件信息,xml内存类似下面。
<?xml version="1.0" encoding="UTF-8"?>
-<ars>
<info active="2" exts="169" disk_free="514455" disk_total="603623" mem_free="263" mem_total="1023"/>
</ars>
注意$bag.addvalue(“value”,$($dict[$item]).invoke()[0])这行,之前的坑是写成了$bag.addvalue(“value”,$($dict[$item]).invoke())
然后死活这个powershell 脚本在addvalue时,value一直为Null。在控制台进行调试,$($dict[$item]).invoke() 又能输出正确的值。
但是当查看invoke输出的对象类型时,问题漏出来了,invoke()的输出结果是一个集合对象,在powershell 控制台print 时,虽然显示的是正确的值,但是在addvalue时,这个结果却是null
本文转自 yoke88 51CTO博客,原文链接:http://blog.51cto.com/yoke88/1845494