Powershell小技巧之获取当前的时间并转换为时辰
午时三刻已到,行刑,刀下留人,现在到底是不是午时,能否让PowerShell告诉我呢?
好的, 没问题。从晚上23点到凌晨2点之间属于子时,每两个小时一个时辰,依次为“子丑寅卯辰巳午未申酉戌亥”。
函数获取当前时辰
用PowerShell脚本实现:
function Get-ChinaTimeAlias { param( [ValidateRange(0,23)] [int]$Hour = (get-date).Hour ) $timeAliasArray='子丑寅卯辰巳午未申酉戌亥' [int]$index=0 if($hour -eq 22){ $index=11 } else{ $index=[math]::Floor( ( $hour+1 ) % 23 / 2 ) } return $timeAliasArray[ $index ] + "时" }
获取当前的时辰
PS> Get-Date
2014年9月17日 23:17:58
PS> Get-ChinaTimeAlias
子时
获取指定小时数对应的时辰
PS> Get-ChinaTimeAlias 12
午时
打印所有的时辰和对应的时间段
输入
$timeArray=@(23)+0..22 for($i=0;$i -lt $timeArray.Length; $i=$i+2) { $startHour = $timeArray[$i].ToString().PadLeft(2,'0') $endHour = $timeArray[$i+1].ToString().PadLeft(2,'0') $timeAlias = Get-ChinaTimeAlias $timeArray[$i] [pscustomobject]@{ 时辰 = $timeAlias; 时间段 = ('{0}:00-{1}:59' -f $startHour,$endHour) } }
输出
时辰 时间段
-- ---
子时 23:00-00:59
丑时 01:00-02:59
寅时 03:00-04:59
卯时 05:00-06:59
辰时 07:00-08:59
巳时 09:00-10:59
午时 11:00-12:59
未时 13:00-14:59
申时 15:00-16:59
酉时 17:00-18:59
戌时 19:00-20:59
亥时 21:00-22:59
总结
字符串本身就是字符数组,没必要把子丑寅卯等单独保存成数组。
用求模和22特殊处理有效规避 对每一个时辰单独条件判断。
相关推荐
-
Powershell小技巧之轻松从网上下载文件
支持所有PS版本 在PS中可以轻松的从网上下载文件.这里有一段代码下载PS说明书(这是一个珍贵并丰富的Powershell文档)自动到你的电脑. 复制代码 代码如下: $link = 'http://download.microsoft.com/download/3/2/6/326DF7A1-EE5B-491B-9130-F9AA9C23C29A/PowerShell%202%200%20Language%20Specification.docx' $outfile = "$env:temp\l
-
Powershell小技巧之使用Update-TypeData扩展类型系统
脚本 Update-TypeData -TypeName 'System.DateTime' -MemberName '时辰' -MemberType 'ScriptProperty' -Value { $timeAliasArray='子丑寅卯辰巳午未申酉戌亥' $hour = $this.Hour [int]$index=0 if($hour -eq 22){ $index=11 } else{ $index=[math]::Floor( ( $hour+1 ) % 23 / 2 ) } r
-
Powershell小技巧--远程对比服务配置
假如你的PS远程运行在两台服务器上,这里有一个简单的脚本教你怎么从每台服务器上得到所有的服务状态并计算他们之间的差别. 复制代码 代码如下: $Server1 = 'myServer1' $Server2 = 'someOtherServer' $services1 = Invoke-Command { Get-Service } -ComputerName $Server1 | Sort-Object -Property Name, Status $services2 = Invo
-
Powershell小技巧之找出脚本中的错误
找出脚本之中的语法错误从来就不是轻松的事情,但是可以这样去筛选: filter Test-SyntaxError { $text = Get-Content -Path $_.FullName if ($text.Length -gt 0) { $err = $null $null = [System.Management.Automation.PSParser]::Tokenize($text, [ref] $err) if ($err) { $_ } } } 这个脚本中,你可以快速扫描一个目
-
Powershell小技巧之等待输入一个按键
支持所有PS版本,仅支持PS控制台. 当一个脚本使用PS控制台启动时,你可能想要在中间穿插一个"输入任意键".这里有一个方法可以实现: Write-Host 'Press Any Key!' -NoNewline $null = [Console]::ReadKey('?') 这只能正常运行在PS控制台.它将不能运行在ISE编辑器或任何其它PS编辑器,它们没有在真实控制台的将没有键盘交互效果.
-
Powershell小技巧--将文件夹中的大文件分成若干份
朋友有一文件夹,全部是EML文件,约20G.他需要把这20G文件按每个文件夹2G分成10个.于是乎写了以下脚本: #目标文件夹 $scrfile = "d:\test" #起始目录名 $directory = 0 #1825361100 #76547428 #判断当目录的文件数大于0时while循环为真 while( (dir -Path $scrfile -Filter *.eml ).count -gt 0) { #起始目录名为1 $directory++ #建立目录 New-It
-
Powershell小技巧之判断是否包涵大小写
使用正则表达式可以检查一个字符中是否包涵一个大写字母: $text1 = 'this is all lower-case' $text2 = 'this is NOT all lower-case' $text1 -cmatch '[A-Z]' $text2 -cmatch '[A-Z]' 结果将返回"true"或"false" 反过来检查是否包含小写,可以尝试这样: $text1 = 'this is all lower-case' $text2 = 'this
-
Powershell小技巧之获取当前的时间并转换为时辰
午时三刻已到,行刑,刀下留人,现在到底是不是午时,能否让PowerShell告诉我呢? 好的, 没问题.从晚上23点到凌晨2点之间属于子时,每两个小时一个时辰,依次为"子丑寅卯辰巳午未申酉戌亥". 函数获取当前时辰 用PowerShell脚本实现: function Get-ChinaTimeAlias { param( [ValidateRange(0,23)] [int]$Hour = (get-date).Hour ) $timeAliasArray='子丑寅卯辰巳午未申酉戌亥'
-
PowerShell小技巧之获取域名whois信息
Whois 简单来说,就是一个用来查询域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人.域名注册商.域名注册日期和过期日期等).通过域名Whois服务器查询,可以查询域名归属者联系方式,以及注册和到期时间.通常情况下,whois信息均为真实信息,通过whois信息可以找到域名注册人的很多真实信息,像电话,邮箱,NS记录,是对网站进行社工非常好的信息来源,对于安全从业人员来说,快速获取whois信息,能够帮助自己掌握目标网站的很多有用信息. 而whois信息通常是保存在各级域名注册
-
Powershell小技巧之获取MAC地址
在Powershell中获取MAC地址不是很难.这里就有一种方法: 复制代码 代码如下: PS> getmac /FO CSV | ConvertFrom-Csv Physical Address Transport Name ---------------- -------------- 5C-51-4F-6
-
Powershell小技巧之获取注册表值的类型
当你不需要获取注册表数据类型而只要其值是非常简单的:你可以使用Get-ItemProperty: 复制代码 代码如下: Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 如果你需要获取数据类型,只需要多几个步骤: 复制代码 代码如下: $key = Get-Item -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run $key.Get
-
PowerShell小技巧之获取Windows系统密码Hash
当你拿到了系统控制权之后如何才能更长的时间内控制已经拿到这台机器呢?作为白帽子,已经在对手防线上撕开一个口子,如果你需要进一步扩大战果,你首先需要做的就是潜伏下来,收集更多的信息便于你判断,便于有更大的收获.用什么方法才能有尽可能高的权限,同时能更有效的隐藏自己,是留webshell,留后门,种木马还是Rootkit?webshell,哪怕是一句话木马都很容易被管理员清除,放了木马,也容易被有经验的管理员查出,不管是早期自己创建进程,进程被干掉就完了,还是注入进程的木马,或者是以服务自启动的木马
-
Powershell小技巧之获取变量列表
我们的需求是当想要列出脚本中所有变量. 这里定义了一个函数 Get-Variable: 复制代码 代码如下: function Get-Variable { $token = $null $errors = $null $ast = [System.Management.Automation.Language.Parser]::ParseInput($psise.CurrentFile.Editor.Text, [ref] $token, [ref] $errors)
-
PowerShell小技巧之获取TCP响应(类Telnet)
通常情况下,为了检测指定的TCP端口是否存活,我们都是通过telnet指定的端口看是否有响应来确定,然而默认情况下win8以后的系统默认是不安装telnet的.设想一下如果你黑进了一个服务器,上面没装telnet,但是为了进一步渗透进内网,需要探测内部服务器特定端口是否打开,同时你还不愿意安装telnet,担心引起管理员注意.那么好吧,在这个情况下你需要我的这个脚本.由于它是原生态的PowerShell语句完成,木有telnet你也照样能检测TCP端口的情况了. 下面首先上代码,后面进行讲解:
-
Powershell小技巧之获取对象可变的特征
当你得到一个有属性对象,它的一些值有的改变,有的则只能读取. 这里有个技巧可以找出那些可以更改的属性.代码的有效范围是当前控制台,但你可以调用不同的命令结果: 复制代码 代码如下: $myProcess = Get-Process -Id $Pid $myProcess | Get-Member -MemberType Properties | Out-String -Stream | Where-Object { $_ -like '*set;*' } 结果如下: 复制代码 代码如
-
Powershell小技巧之获取字符串的行数
这里有一个简单的方法教你获得一个字符串(不是数组哦)包涵多少行: $text = @' This is some sample text Let's find out the number of lines. '@ $text.Length - $text.Replace("`n",'').Length + 1 从技术上讲,该示例使用了上面的字符串来创建多行字符串,但是这仅仅是一个例子.只要懂得了它的工作原理就能在多种场合使用. 支持所有的PS版本
-
PowerShell小技巧之查找获取注册表路径
在先前的技巧中我们说明如何将一个PS内置的路径格式转化成一个实际路径.这里介绍了一个例子.这段代码递归从HKEY_CURRENT_USER获取所有包含"powershell"词缀的键(简单的替换查询词缀将能获得你想要查询的任何东西) 复制代码 代码如下: Get-ChildItem -Path HKCU:\ -Include *PowerShell* -Recurse -ErrorAction SilentlyContinue|Select-Object -Property *Path
随机推荐
- VBA中的Timer函数用法
- 如何选择jQuery版本 1.x? 2.x? 3.x?
- 可以让程序告诉我详细的页面错误和数据库连接错误吗?
- 关于数据库中保留小数位的问题
- Redis实现信息已读未读状态提示
- Linux cp命令参数简介
- Ghost安装Win7/XP后自动恢复IP的批处理代码(ip备份恢复)
- android端实现验证码随机生成功能
- 分享常见的几种页面静态化的方法
- Python将图片批量从png格式转换至WebP格式
- 深入理解JavaScript中的对象
- file_get_contents("php://input", "r")实例介绍
- JavaScript+HTML5实现的日期比较功能示例
- niceTitle 基于jquery的超链接提示插件
- js实现表单检测及表单提示的方法
- JS实现图片高斯模糊切换效果的焦点图实例
- Android中几种图片特效的处理的实现方法
- Asp.net请求处理之管道处理介绍
- 隐藏你的.php文件的实现方法
- 基于openCV实现人脸检测