1. Accessin values in an array
如:$a = 1,2,3,4,5,6,7,8
@访问下表 $a[2] 输出3
@可一次访问多个下标$a[1,3,5] 输出 2,4,6
或者a[1..3] 输出2,3,4,
@访问最后一个可用$a[-1] 输出8
=========================================================================
2.Byte Conversion
powershell 不单单可以算加减乘除,byte 值也是可以换算的
比如你想得到你计算机上的free disk,用command :Get-WMIObject Win32_LogicalDisk | ForEach-Object {$_.freespace}
返回的却是byte值7385841664
19392094208
这时可以直接用单位换算 Get-WMIObject Win32_LogicalDisk | ForEach-Object {$_.freespace / 1GB} # 或者1MB
返回的值是6.8775634765625
18.0602951049805
how many bytes 1 byte plus 1 kilobyte plus 1 megabyte plus 1 gigabyte adds up to?
直接输入1 + 1KB + 1MB + 1GB 就可以计算的出值了1074791425
Special bonus tip:去掉小数点后面的,可以用.NetFramwork's 的System.Math class ([math]) and theTruncate
Get-WMIObject Win32_LogicalDisk | ForEach-Object {[math]::truncate($_.freespace / 1GB)}
返回值6
18
=========================================================================
3. Creating Custom tables
有的时候我们想把命令的输出结果设成我们自己想要的格式。
比如常用的Get-Process,输出如下
Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
------- ------ ----- ----- ----- ------ -- -----------
101 5 1284 3656 32 0.03 3876 alg
257 7 4856 10228 69 0.67 872 asghost
想得到自己输出的东东,可以先看他的member:Get-Process | Get-Member
指定表格的格式如下:
$myTableFormat = @{Expression={$_.Name};Label="Process Name";width=25},`
@{Expression={$_.ID};Label="Process ID";width=15}
Get-Process | Format-Table $myTableFormat
当然Get-Process | Format-Table Name,ID 也可以
Note:看format-table 表格属性 Get-Help Format-Table -Detailed