PowerTip of the Day from powershell.com上周汇总(七)

本文介绍了PowerShell中的一些实用技巧,包括使用脚本验证输入、查看对象的继承关系、正确比较版本号、利用类型加速器以及直接访问WMI实例等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用脚本验证输入的参数

Using Scripts to Validate Input

http://powershell.com/cs/blogs/tips/archive/2010/08/30/using-scripts-to-validate-input.aspx

通过ValidateScript实现。

function Copy-OldFiles {
param(
$Days=30,
[Parameter(ValueFromPipeline=$true)]
[System.IO.FileInfo]
[ValidateScript({ (New-TimeSpan $_.LastWriteTime).Days -gt $Days })]
$FileObject
)

process {
"Archiving file {0} (Age {1})..." -f $FileObject.FullName, (New-TimeSpan $_.LastWriteTime).Days
}
}

个人感觉不如在方法体里实现更容易理解和实现。

 

 

查看对象的继承关系

View Object Inheritance

http://powershell.com/cs/blogs/tips/archive/2010/08/31/view-object-inheritance.aspx

一个叫PSTypeNames的隐藏属性可以显示一个对象的继承连

(Get-WMIObject Win32_BIOS).PSTypeNames

GetType()对比,这个属性对所有对象有效,包括COM对象,最常用的方法就是获取继承链的第一个元素:

(Get-WMIObject Win32_BIOS).PSTypeNames[0]

 

 

版本对照

Comparing Versions

http://powershell.com/cs/blogs/tips/archive/2010/09/01/comparing-versions.aspx

当比较两个字符串类型保存的版本号的时候,powershell会用字符数字算法(?)来比较,比如:

'a' -gt 'b'

False

所以会得到如下错误的结果:

'3.4.22.12' -gt '22.1.4.34'

True

这里需要将string类型转换成System.Version类型才可以正确比较。实际上,只需要把左边的类型转换就可以了,因为右面的也会随着进行转换:

[System.Version] '3.4.22.12' -gt '22.1.4.34'

False

 

 

类型加速器(?)

Type Accelerators

http://powershell.com/cs/blogs/tips/archive/2010/09/02/type-accelerators.aspx

powershell对一些.net类型提供了一些快捷方式,比如WMIADSI或者Int,可以使用FullName属性来获知一个类型名的全名:

[WMI].FullName

System.Management.ManagementObject

 

 

直接访问WMI实例

Accessing WMI Instances Directly

http://powershell.com/cs/blogs/tips/archive/2010/09/03/accessing-wmi-instances-directly.aspx

如果你知道一个WMI实例的路径,那么就可以直接把一个WMI路径字符串转换成一个WMI对象。

[wmi]'Win32_Service.Name="W32Time"'

[wmi]'Win32_Logicaldisk="C:"'

也可以指定一个完整的WMI路径,包含机器名:

[wmi]'//SERVER5/root/cimv2:Win32_Service.Name="W32Time"'

 

 

 

 

以上来自powershell.com

2010年八月份16日到20日的PowerTip of the Day

 

 

---------------------------------------------------------------

aspnetxBI笔记系列索引:

BI笔记之---增量方式处理多维数据集

BI笔记之---BI通用流程

BI笔记之---SSAS部署的几种方式

BI笔记之---SSAS库Process的几种方案 

---------------------------------------------------------------

来自博客园aspnetx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值