Powershell已经成了windows运维人员不得不掌握的技能了,他的强大只有使用过了才能体会,闲话不多说,在这里记录一下Powershell的实用命令,帮助在Powershell中一起奋斗的童鞋们
将输出的结果转变成自己想要的对象类型,例如,我有一个小数,但是我只想要他的整数位,这里我们可以用-as操作符,在as后面接你想转换的类型可以是[int],[string]等
1.23 -as [int]
这条命令就是将1.23这个小数转换成整型值,所以最后我们得到的结果就是1,这个功能经常用于一些磁盘空间的或者数据方面的转换,需要注意的是,这个转换时使用的四舍五入的机制,就是说,如果小数值是大于等于0.5的会在整数位加1
当然我们不用as操作符,更简单的方式就是直接在值或变量前面加类型例如[int]1.23,这样输出的值也是一
取整这个还有几种方法,这里也介绍一下,有时候我们可能需要把小数位直接算成整数,或者小数位直接舍去,那么遇到这种情况我们可以通过[math]::Floor()和[math]::Ceiling()来执行,例如:
PS C:\Windows\system32> $a=2.33
PS C:\Windows\system32> [math]::Ceiling($a)
3
PS C:\Windows\system32> [math]::Floor($a)
2
通过上面的代码,我们可以看到,ceiling函数是向上取整,就是小数位统统往整数上加1,floor函数是向下取整,小数位统统忽略,甭管你是不是大于0.5
和前面提到的[int]直接转整数的,还有一种方式,就是[convert]::Toint32($a),也可以得到四舍五入的取整结果,当然Toint32的功能不仅仅是简单的转换小数,他还可以用于转换2进制,10进制,16进制等等,例如
PS C:\Windows\system32> $a = [convert]::ToString(188,2)
PS C:\Windows\system32> [convert]::ToInt32($a)
10111100
PS C:\Windows\system32> [convert]::ToInt32($a,2)
188
PS C:\Windows\system32> [convert]::ToInt32($a,8)
2134592
PS C:\Windows\system32> [convert]::ToInt32($a,16)
269553920
PS C:\Windows\system32> [convert]::ToInt32($a,10)
10111100
首先我把188转成2进制形式赋值给a变量(听清楚是形式,它实际上是一个字符串值,要确认可以直接用$a.gettype()去看下他的类型),然后测试直接转成整型,接着转2进制,8进制,16进制和10进制,嗯,看起来没毛病,对吧,老铁。
好,我们接着下一个比较实用的命令,通过哈希表达式来转换输入的格式
我想平时写脚本导出资料的时候,你应该会遇到导出的结果的栏位名称你觉得不满意,想改成自己想要的名字,甭管为啥,就是想改,有句话怎么说来着,我就是喜欢你看我不惯又拿我没辙的样子,就是这么任性。
OK,小case,哈希表达式帮您忙,举个简单的例子,我想把输入的栏位英文改成我要的中文,看代码:
PS C:\Windows\system32> Get-Process | select name -First 3
Name
----
AcroRd32
AcroRd32
ApplicationFrameHost
我们用get-process抓3条进程名字,可以发现名字栏位是Name,作为一个爱国的五好青年,我得把这个Name改成中文,看我代码大法
PS C:\Windows\system32> Get-Process | select @{name='名称';expression={$_.Name}} -First 3
名称
--
AcroRd32
AcroRd32
ApplicationFrameHost
看见没,Name没有了,我中华汉字取而代之,name和expression可以缩写成n和e @{n='想要的名称';e={可以是一个代码输出的值,也可以是值}}
延伸一下,我们知道平时我们使用ft或者fl这样的输出格式命令的时候是没有指定输出值的对齐功能的,Powershell会默认去对齐,但是这样会发现有的是左对齐,有的是右对齐,还能不能好好玩耍了,非要整2个对齐方式干嘛,我只需要一种对齐方式,我们可以通过哈希表达式来解决,只需要在表达式中加入align='left'或者'right',就可以让数据左对齐,或者右对齐了,例如@{n='名称';e={$_.name};align='left'}
今天就说到这了,要想了解更多,且听下回分解,散会!