Я искал далеко и широко для явной информации об этом, но я не нашел ни одного вообще. Допустим, у меня есть файл или каталог, хранящийся в переменной $Item
. Как использовать Windows PowerShell (я использую 3.0), как получить все метаданные, связанные с $Item
которые не хранятся в его содержимом? Например, я хочу получить его разрешения, его SID, время создания, время модификации, время последнего обращения к нему, его атрибуты и многое другое, что отображается в диалоговом окне «Свойства» в Windows Проводник. Мне нужно сделать это, чтобы я мог записать свойства каждого элемента в метаданных SVN.
2 ответа
Предполагая, что:
$item = Get-Item c:\windows\notepad.exe
Время последнего доступа:
$item.LastAccessTime.ToString()
Время последней модификации:
$item.LastWriteTime.ToString()
Время создания:
$item.CreationTime.ToString()
Атрибуты:
$item.Attributes
Информация о версии:
$item.VersionInfo
Разрешения безопасности не сохраняются в файле, поэтому вы должны использовать командлет Get-Acl
:
(Get-Acl $item).Access
Вы можете получить большинство этих элементов из Системы.Класс 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. тогда вы можете повторять или перебирать их по своему усмотрению.