clo*_*yn3 1 powershell if-statement
$WshShell = New-Object -ComObject wscript.shell
$Time = (Get-Date).hour
$Time2 = Get-Date -DisplayHint Time
$Message ="Test for $Env:username at: " + $Time2
$fail = "ERROR:It is $Time2, which is past 12PM"
$PopUp = $WshShell.popup("$Message",0,"Task Scheduler Pop-up",1)
if ($Time2 > 12)
{
$PopUp = $wshShell.popup("$Message",0,"Task Scheduler Pop-up",1)
}
else {
$PopUp = $wshShell.popup("$fail",2,"Task Scheduler Pop-up",1)
}
Run Code Online (Sandbox Code Playgroud)
大家好,我正在练习一点我的 PowerShell 并且遇到了一些我不太确定如何谷歌搜索的东西,或者我需要使用什么方法才能使其正常工作。
我试图完成的是只显示我的框,小时和分钟像“12:31”。正如您在脚本中看到的,我正在调用 Hour,但我不太清楚如何让它以正确的方式单独显示时间。我正在使用“时间”运算符,但是当您在“IF”语句中比较它时,它不会将其识别为可以与之进行比较的东西,因为它不是真正的整数。我明白为什么,但我希望能够将 .Hour 与 $Time2 进行比较
我是新手,感谢您提供的任何帮助!谢谢!
在实际需要之前不要考虑输出字符串。
>不适用于比较,您需要使用-lt(小于)和-gt(大于)
如果要比较两个DateTime对象的时间(不考虑日期),可以比较TimeOfDay属性:
$DateTimeNow = Get-Date
$DateTimeEarly = Get-Date -Hour 1 -Minute 5
if($DateTimeNow.TimeOfDay -lt $DateTimeEarly.TimeOfDay){
"It is very early right now!"
} else {
"It is at least past 01:05"
}
Run Code Online (Sandbox Code Playgroud)
如果你想在输出中显示时间,你有多种格式化DateTime字符串的选项:
您可以将该ToString()方法与格式化字符串一起使用:
PS C:\> (Get-Date).ToString('HH:mm')
20:41
Run Code Online (Sandbox Code Playgroud)
格式运算符-f:
PS C:\> '{0:HH:mm}' -f (Get-Date)
20:41
Run Code Online (Sandbox Code Playgroud)
或者Get-Date返回一个格式化的字符串本身:
PS C:\> Get-Date -Format 'HH:mm'
20:41
Run Code Online (Sandbox Code Playgroud)
如果您想要 12 小时风格的时间,请使用 hh:mm
| 归档时间: |
|
| 查看次数: |
20264 次 |
| 最近记录: |