在创建Function的时候如何实现,类似Get-Process这样,既可以通过“-Name” 又可以通过“-ID” 来筛选?
另外一个问题,我们在使用类似Get-NetAdapter的时候,默认只是显示一小部分信息,当使用Get-NetAdapter |Format-List 可以看到更多信息,如何实现?
上面这两个问题,毫无头绪,很纠结。请不吝赐教~~
本文链接: https://www.pstips.net/powershell-function.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
1. 可以通过switch参数来实现吧,如果有带switch参数,则通过select-object对结果进行筛选
2. 这是一个基础知识点,叫format view,对于每一种类型,Powershell都有预定义的format view,存放在$pshome目录中。以默认格式输出时,会读取这里的格式(即哪些属性要显示,哪些不显示)。而Format-List相当于强制显示所有属性
哦不对。。。switch带不了实参,看来还得用其他方法实现
第一个就定义普通参数就行了吧,根据实参的内容就行筛选
第二个问题
我的理解是
Powershell 使用对象传递数据,通过管道实际上是传递的对象,管道后面的cmdlet 则获取全部数据分析
而直接使用cmdlet, 类似于调用了对象的.toString() 方法,或者其他之类的方法,因此只输出简要数据
Python 用户的理解:Python的对象都有一个 this.__str__ 方法
function Get-processNoI {
param (
$Information
)
if ($information -match “\d”) {
Get-process -id $Information
}
else {
Get-process -ProcessName $Information
}
}
$Information = Read-Host “Please input ProcessID or PorcessName”
Get-processNoI -Information $Information