【问题标题】:How to see only the files created in the last 24 hours in powershell如何在powershell中仅查看过去24小时内创建的文件
【发布时间】:2020-01-14 20:30:51
【问题描述】:

我有以下代码。它可以工作,但问题是,例如,如果现在是晚上 8:20,代码会看到前一天晚上 8:20 之后的所有文件。我需要在前一天的凌晨 12 点之后。

Get-ChildItem -Exclude *.log |
    Sort CreationTime -Descending |
    Where-Object { $_.CreationTime -gt (Get-Date).AddDays(-1) } |
    Select-Object -ExpandProperty Name

我该如何解决?

【问题讨论】:

  • 澄清一下:你想要中午 12 点还是午夜 12 点?中午 12 点是中午,但这个术语经常会引起混淆。
  • 您的问题不清楚,比较 -gt (Get-Date).AddDays(-1) 将返回不超过 24 小时的文件。
  • 对不起,我在翻译英文时写错了,是凌晨 12 点(午夜)。在我的国家,我们使用 24 小时制。
  • 我更正了这个问题。

标签: windows powershell powershell-2.0


【解决方案1】:
(Get-Date).AddDays(-1)
Thursday, 12 September 2019 8:20:00 PM

((Get-Date).AddDays(-1)).Date
Thursday, 12 September 2019 12:00:00 AM

获取DateTime 对象的Date 属性会将时间设置为午夜。如果您在中午之后,您可以随时通过 ((Get-Date).AddDays(-1)).Date.AddHours(12) 增加 12 小时

这样做的方式非常混乱,但它确实有效。

【讨论】:

  • (Get-Date).Date.AddDays(-1) 可能稍微简单一些。
  • 谢谢!我已经测试过了,它的工作方式是正确的。
【解决方案2】:

我会这样构图。编辑:问题更改后从中午 12 点更改为上午 12 点。

[datetime]'12:00am' - [timespan]'1'  

Wednesday, September 11, 2019 12:00:00 AM

所以:

get-childitem | where creationtime -gt ([datetime]'12:00am' - [timespan]'1')

【讨论】:

    猜你喜欢
    • 2018-09-12
    • 2012-10-30
    • 1970-01-01
    • 1970-01-01
    • 2016-03-02
    • 2013-04-11
    • 2018-06-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多