博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Powershell实用命令(1)
阅读量:5804 次
发布时间:2019-06-18

本文共 2202 字,大约阅读时间需要 7 分钟。

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.33PS C:\Windows\system32> [math]::Ceiling($a)3PS 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)10111100PS C:\Windows\system32> [convert]::ToInt32($a,2)188PS C:\Windows\system32> [convert]::ToInt32($a,8)2134592PS C:\Windows\system32> [convert]::ToInt32($a,16)269553920PS 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 3Name                ----                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'}

今天就说到这了,要想了解更多,且听下回分解,散会!

转载于:https://blog.51cto.com/thefallenheaven/2169731

你可能感兴趣的文章
CodeIgniter 3.0 新手捣鼓源码(一) base_url()
查看>>
Chrome 广告屏蔽功能不影响浏览器性能
查看>>
vSphere 6将于2月2日全球同步发表
查看>>
Android状态栏实现沉浸式模式
查看>>
让你的APP实现即时聊天功能
查看>>
iOS 绝对路径和相对路径
查看>>
stat
查看>>
报空指针异常
查看>>
如何配置mysql的超时时间
查看>>
Java_spark简单例子
查看>>
imshow(K)和imshow(K,[]) 的区别
查看>>
poj3190 Stall Reservations
查看>>
CORS 跨域问题, 以及作为api server 的正确配置, 后台 nginx 配置
查看>>
loadrunner录制脚本、回放脚本遇到的问题
查看>>
16进制数至字符串转换
查看>>
Java Web整合开发(13) -- XML
查看>>
标准库Queue的实现
查看>>
如何使用Python3.4连接MySQL
查看>>
automake,autoconf使用详解
查看>>
高并发
查看>>