我一直在四处寻找有关此问题的明确信息,但我没有找到任何根本没有。假设我在变量中存储了一个文件或目录$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 获取子项列表。然后你可以根据需要对它们进行递归或迭代。