[英]get the latest created folder from a path using powershell
如何使用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
及其别名gm
和Get-Command
或只是gcm
。 Get-Member
将告诉您对象具有哪些属性和方法; 你只需将其他东西输入其中:
Get-ChildItem | gm
会告诉你文件和目录有哪些属性。
Get-Command
将列出所有命令或与特定模式匹配的命令。 PowerShell命令在动词和名词的使用方面尝试非常一致。 要查找以Object
结尾的所有命令,您可以尝试gcm *-Object
- 这些是几乎所有内容的通用命令。 Get-Help ForEach-Object
然后会告诉你一个特定的命令,在这种情况下是ForEach-Object
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.