我有一些日期变量,用它来对特定目录中的文件执行查询。我可以GCI每个文件没有问题,如下面的例子:PowerShell v2.0 - 转换为日期时间
File1.xml 14/07/2016 17:09
File2.xml 15/07/2016 09:32
所以我在寻找一个特定的年龄范围和我的标准之间的所有文件是:
已成:
$Today4am = Get-Date -Hour 4 -Minute 0 -Second 0
但不迟于
$Yesterday4am = $Today4am.AddDays(-1)
变量输出
$Today4am = 15 July 2016 04:00:00
$Yesterday4am = 14 July 2016 04:00:00
因此,变量以不同的格式将文件本身排除在日期之外,所以我需要确保两种格式都相同以便进行比较。这里是原始脚本:
$Filter = gci c:\temp\*.xml |
Where {$_.LastWriteTime -gt $Yesterday4am -and {$_.LastWriteTime-lt $Today4am}}
错误的参数来操作 '-gt':无法比较 “14/07/2016 17时09分52秒” 为“14/07/2016 0 4:00 ”。错误:“无法转换值”14/07/2016 04:00“键入”System.DateTime“错误: ”字符串未被识别为有效的DateTime。“”。
因此,我尝试转换变量以添加-Format“dd/MM/yyyy HH:mm”并输出正确的格式。但转换$ Yesterday4am = $ Today4am.AddDays(-1)格式 “DD/MM/YYYY HH:MM”产生错误:
Cannot convert value "15/07/2016 04:00" to type "System.DateTime". Error: "String was not recognized as a valid DateTime."
我怎样才能得到两个日期格式的同意?
超级!谢谢 - 作品一种享受!所以-filterscript是我的脚本的关键 - 不知道它是什么,但将查找它 – JDGEEK
它实际上是Where-Object(Where)的默认参数,但我只是指定我打电话,所以人们知道。这可能是因为您在FilterScript {}表达式中使用了表达式括号。 –