使用 Windows PowerShell 以递归方式检索文件或目录的所有文件系统元数据

使用 Windows PowerShell 以递归方式检索文件或目录的所有文件系统元数据

我一直在四处寻找有关此问题的明确信息,但我没有找到任何根本没有。假设我在变量中存储了一个文件或目录$Item。使用 Windows PowerShell(我使用的是 3.0),如何获取$Item与其内容中未存储的所有元数据?例如,我想获取它的权限、SID、创建时间、修改时间、上次访问时间、属性以及 Windows 资源管理器中“属性”对话框中显示的几乎所有其他内容。我需要这样做,以便我可以在 SVN 元数据中记录每个项目的属性。

答案1

假设:

$item = Get-Item c:\windows\notepad.exe

最后访问时间:

$item.LastAccessTime.ToString()

最后修改时间:

$item.LastWriteTime.ToString()

创建时间:

$item.CreationTime.ToString()

属性:

$item.Attributes

版本信息:

$item.VersionInfo

安全权限不存储在文件中,因此您必须使用 cmdlet Get-Acl

(Get-Acl $item).Access

答案2

您可以从 System.IO.DirectoryInfo 类中获取大部分这些元素

PS C:\Windows\system32> $([System.IO.DirectoryInfo]"c:\").creationtime
PS C:\Windows\system32> $([System.IO.DirectoryInfo]"c:\").Attributes

...

以下是该对象可用的属性: http://msdn.microsoft.com/en-us/library/system.io.directoryinfo.aspx

现在,我不确定你所说的递归是什么意思,因为你说你不想要目录的内容,但是你可以使用 .GetFiles 或 .GetDirectories 获取子项列表。然后你可以根据需要对它们进行递归或迭代。

相关内容