在Powershell

时间:2016-02-04 14:49:42

标签: powershell

我在电源shell脚本中将日期转换为2016年4月2日时遇到问题,它正在查找何时创建McAfee的DAT文件。由于某种原因,它输出02/03/2016 00:00:00,谁能告诉我为什么它添加00:00:00?这是我到目前为止所拥有的:

$mcafee = Get-ItemProperty HKLM:\SOFTWARE\Wow6432Node\McAfee\AVEngine
$mcafee.AvDatDate
$datfile=[datetime]$mcafee.AvDatDate

$datfile.adddays(-3)
$threedaysbefore = $datfile.adddays(-3)

$WPFMcAfeeField.Text = $datfile

$datfile.adddays(-3)
$threedaysbefore = $datfile.adddays(-3)


$WPFMcAfeeField.Text = $datfile

所以我真正的问题是,如何将这个声明作为一个整体编辑到它在现场输出的位置:02/03/2016?我已经尝试了我能想到的一切。我需要重新格式化吗?

1 个答案:

答案 0 :(得分:0)

使用[datetime]$mcafee.AvDatDate,您将转换为[datetime]对象。您看到的值$datfile是预期的。它将包含日期和时间。由于您没有提供值,因此默认为午夜。

如果您只想使用日期,则可以使用各种方法返回该数据。一个简单的例子是ToString()方法。提供date time format,它将返回匹配的字符串。

PS C:\temp> $datfile.ToString("MM/dd/yyyy",[cultureinfo]::InvariantCulture)
02/04/2016

设置文化设置对于确保从字符串中获得预期结果非常重要。在上面的例子中,确保您的区域设置确实干扰输出或它所谓的文化不敏感。