【发布时间】:2023-03-30 21:05:01
【问题描述】:
我想检查 DateTime 字段是否不是空\null 字符串。如果 datetime 字段不为空,那么我会做一些事情。
[DateTime]$expdate = Read-Host "Expiration Date? MM/DD/YYYY"
$newexpdate = $expdate.AddDays(1)
if (!([DateTime]$expdate -eq "")) {
Write-Host -ForegroundColor Green $($newexpdate) "Date Time entered"
}
这是我的错误信息:
无法将值“”转换为类型“System.DateTime”。错误:“字符串不是 识别为有效的日期时间。” 在行:1 字符:2 + [DateTime]$expdate = 读取主机“到期日期?MM/DD/YYYY” + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~ + CategoryInfo : MetadataError: (:) [], ArgumentTransformationMetadataException +fullyQualifiedErrorId:RuntimeException`如何检查字段是否不是字符串而是DateTime 对象?
【问题讨论】:
-
if ($expdate) {"Has value"} else {"No value"}一个空字符串的计算结果为$false。 -
可以查看数据类型:$expDate -is [datetime]
-
将变量声明为
[datetime]$foo会强制将对其的任何赋值转换为datetime。如您所见,如果它不可转换,则会引发错误。不要在$foo上声明类型,然后你可以测试一个空字符串。
标签: powershell datetime