gpt4 book ai didi

powershell - 使用Powershell从路径获取最新创建的文件夹

转载 作者:行者123 更新时间:2023-12-03 08:35:05 24 4
gpt4 key购买 nike

如何使用Windows PowerShell从路径获取最新创建的文件夹?

我有路径C:\temp,我想在此路径中找到最新创建的文件夹。

最佳答案

PowerShell主要与管道一起工作,因此您编写的大部分内容将包括创建表示某些信息的对象,以及对其进行过滤和操作。在这种情况下,对象是一堆文件夹。

  • 获取文件夹中的所有项目。这将获取文件和文件夹,这就是为什么必须执行步骤2的原因。该行末尾的|表示管道将在下一行继续–由Get-ChildItem创建的对象将一个接一个地传递给另一个命令。
    Get-ChildItem c:\temp |
  • 筛选文件夹。遗憾的是,没有真正优雅的方法。不必担心它说的是“容器”,而不是“文件夹” –这些命令可处理许多不同的事情,不仅是文件和文件夹,因此在命名中使用了更笼统的概念。
    Where { $_.PSIsContainer } |
  • 按日期排序,降序排列,因此最新的文件夹是第一个。
    Sort CreationTime -Descending |
  • 选择第一个(最新)文件夹。
    Select -First 1

  • 简而言之:
    gci c:\temp | ? { $_.PSIsContainer } | sort CreationTime -desc | select -f 1

    要么
    (gci c:\temp | ? { $_.PSIsContainer } | sort CreationTime)[-1]

    这两行都使用PowerShell中命令的默认别名,例如 ?Where-Object。但是,您应该在脚本中使用全名,因为您永远都不知道别名在代码可能在其上运行的其他计算机上的外观。

    编辑: PowerShell 3具有 Get-ChildItem的其他参数,这些参数使您可以直接对文件或文件夹进行过滤,因此您不需要 Where:
    Get-ChildItem -Directory C:\temp | ...

    通常,您将在PowerShell中使用对象及其属性。两个非常有用的命令是 Get-Member及其别名 gmGet-Command或仅仅是 gcmGet-Member会告诉您对象具有哪些属性和方法;您只需为此添加其他内容:
    Get-ChildItem | gm

    会告诉您文件和目录具有哪些属性。
    Get-Command将列出所有存在的命令或与特定模式匹配的命令。 PowerShell命令在使用动词和名词时要尽量保持一致。要查找所有以 Object结尾的命令,您可以尝试 gcm *-Object-这些是可处理几乎所有内容的常规命令。然后 Get-Help ForEach-Object会告诉您有关特定命令的信息,在这种情况下为 ForEach-Object

    关于powershell - 使用Powershell从路径获取最新创建的文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7394648/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com