PowerShell系列七:重要的cmdlet
  ymimIgn1vImn 2023年11月02日 41 0

重要的cmdlet

  1. Where-Object
  2. Select-Object
  3. ForEach-Object
  4. New-Object
  5. Sort-Object

Where-Object 是一个过滤器,它的功能非常强大。基本所有获取数据的操作都需要过滤,熟练的掌握过滤器是每一个使用Shell的人的最基本的基本功了 <br> Select-Object 控制输出的属性列,同时还可以添加计算列。 <br> ForEach-Object 循环的重要性无需多言 <br> Sort-Object 排序也不需要多加介绍 <br> New-Object 可以使用.NET的功能,也可以用来自定义类。很有用 我们使用这些工具来做点事情,获取计算机的简介信息。

$result = New-Object -TypeName psobject | Select-Object 'CPU','RAM','VIDEO','DISK','NIC'

$rams = Get-WmiObject Win32_PhysicalMemory
$ramtotal = 0
$rams | ForEach-Object {$ramtotal += $_.Capacity}
$ramtotal = $ramtotal / 1GB -as [int]

$video = Get-WmiObject Win32_VideoController | Sort-Object -Property Name
    

$disks = Get-WmiObject MSFT_PhysicalDisk -Namespace "root/microsoft/windows/storage" `
-Filter "BusType <> '7' and BusType <> '12' and BusType <> '13'" -ErrorAction Stop `
| Sort-Object -Property __PATH

$result.CPU = (Get-WmiObject Win32_Processor).Name

$result.RAM = "$ramtotal GB, $($rams.speed[0])"

$result.Video = ($video | ForEach-Object {
    $VideoRAM = $_.AdapterRAM / 1GB -as [int]
    Write-Output "$($_.Caption), $($_.AdapterDACType), $($VideoRAM)Gb"
}) -join ', ';

$result.Disk = ($disks | ForEach-Object {
    $DiskSize = $_.Size / 1Gb -as [int];
    $DiskType = switch ($_.MediaType) { 3 { 'HDD' } 4 { 'SSD' } 5 { 'SCM' } default { 'Generic' } }
    Write-Output "$($DiskSize)Gb $DiskType";
    }) -join ', ';

$result.NIC = (Get-NetAdapter -Physical | ForEach-Object {Write-Output "$($_.ifDesc)"}) -join ","
$result
#$result | Export-Csv -Path hard.csv

where的简单例子,使用脚本块的时候,脚本块要始终能够返回布尔值。只要能返回true或false,无论脚本块里包含多少代码。

get-process | Where-Object {$_.id -gt 500 -and $_.id -lt 999 -and $_.handles -gt 400} | sort id,ws
Get-Process | Where-Object {$true}
Get-Process | Where-Object {$False}

这几个cmdlet应该多加练习,熟练掌握。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  71brNztFXeFh   2023年11月05日   46   0   0 WindowsPowershell