Board logo

标题: [转载教程] 玩转PowerShell之(2)计算篇 [打印本页]

作者: HAT    时间: 2013-10-29 14:38     标题: 玩转PowerShell之(2)计算篇

玩转PowerShell之(1)检测硬盘自由空间http://bbs.bathome.net/thread-27008-1-1.html
玩转PowerShell之(2)计算篇http://bbs.bathome.net/thread-27010-1-1.html
玩转PowerShell之(3)命令执行结果http://bbs.bathome.net/thread-27011-1-1.html
玩转PowerShell之(4)email篇http://bbs.bathome.net/thread-27012-1-1.html
玩转PowerShell之(5)偷偷下载http://bbs.bathome.net/thread-27013-1-1.html
玩转PowerShell之(6)数据库篇http://bbs.bathome.net/thread-27014-1-1.html
玩转PowerShell之(7)图形菜单http://bbs.bathome.net/thread-27016-1-1.html
玩转PowerShell之(8)email篇续  - 把gmail当相册http://bbs.bathome.net/thread-27017-1-1.html
玩转PowerShell之(9)DNShttp://bbs.bathome.net/thread-27018-1-1.html

加减乘除在PS里面都很好实现。+ - * / 就可以了。
下面介绍几个特殊的情况。
举个例子
大家试验下面两条语句
[int](3/2)
[int](5/2)
结果都是2。
那么如果希望得到所得结果的整数位该怎么做呢?
Powershell本身不带这个命令,不过.net带,所以用下面的方法就可得到结果的整数位了。
[Math]::Truncate(3/2)
结果是1
[Math]::Truncate(5/2)
结果是2
余数呢? 用%就可以得到余数。

上面那些东西在现实工作中有用么?当然有,我最近写的一个脚本,每次运行时会自动记录当前的运行时间。我没有直接用get-date的结果,因为如果在不同的计算机上运行,由于时间格式的不同,结果往往不是我们所预期的格式。因此,我用了类似 [int](get-date).timeofday.totalminutes 这种方式来记录时间,这样得到的结果就都是统一的。那么该怎么把得到的结果返回时间格式呢?
就要用到上面的方法了。比如我有一个记录630,也就是说该时间是当天的第630分钟,倒底是几点钟呢?
这样来算
$hour=[Math]::Truncate(630/60)
$minute=630%60
然后我们把它给转换成时间
$t = get-date -hour $hour -minute $minute -second 0
我们直接打$t显示630分钟底是几点?结果如下
Friday, 25 January 2008 10:30:00 a.m.

上午的10点30分!

好了,今天就到这里,有时间和大家聊聊在PS里面如何“玩时间”

http://bbs.winos.cn/thread-26305-1-1.html




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2