$date = [datetime]("05/19/2014")
gci -Recurse | Select-Object FullName,LastWriteTime | Where-Object { $_.LastWriteTime.ToShortDateString() -ge $date.ToShortDateString() } | Format-Table
我试图在2014年5月19日找到 在 之后的文件列表。这里发生了两件事情:< / p>
如何获得正确的文件列表,另外,我如何以可读的方式对它们进行排序?
答案 0 :(得分:2)
问题可能在于您如何进行比较。 DateTime.ToShortDateString方法使用您的流程使用的当前文化的短日期模式。不幸的是,我无法想到一个例子,它会使2009年的日期大于2014年的字符串形式。尝试直接比较日期时间对象。您可以使用Date
属性来比较日期:
$date = [datetime]("05/19/2014")
gci -Recurse | Select-Object FullName,LastWriteTime | Where-Object { $_.LastWriteTime.Date -ge $date } | Format-Table -AutoSize
请注意,我不需要在Date
变量上使用$date
属性,因为在实例化仅包含日期信息的DateTime
对象时,时间设置为12:00上午。 Date
属性将提供一个值,其中包含原始DateTime
对象的日期,但时间设置为12:00 AM。
我添加到-AutoSize
的{{1}}参数会处理您的第二个问题,因为它会自动将列调整为合理的宽度。