2013-12-17 2 views

ответ

4

У Вас уже есть время последнего изменения:

CreationTime = Created 
LastWriteTime = Modified 
LastAccessTime = Accessed 

См here для более подробной информации.

Я думаю, что ваша проблема в том, что вы используете select-string, который возвращает объект MatchInfo, и вы ожидаете FileInfo.

Get-ChildItem d:* -filter $fname* | Select-String -Pattern "exit" | group path | %{ (get-item $_.Name).LastWriteTime } 

Группировка результатов выборки по пути, а перечисление имен должно дать вам то, что вы хотите.

+0

Спасибо за ответ Дэйв. это сработало. перед использованием строки выбора, если просто попытаться напечатать последнее время, это будет работать Get-ChildItem d: * -filter $ fname * | Write-Host $ _. LastWriteTime – user3088768

+0

Да, это потому, что fileinfo будет передаваться по конвейеру, используя строку выбора, в которой вы больше не имеете дело с файловым информационным объектом, чтобы снова получить объект fileinfo, мы используем get-item. –

0

Вы можете легко узнать свойства с помощью командлета Get-Member. Например,

gci test.txt | gm 
# Output 
    TypeName: System.IO.FileInfo 

Name      MemberType  Definition 
----      ----------  ---------- 
Mode      CodeProperty System.String Mode{get=Mode;} 
AppendText    Method   System.IO.StreamWriter AppendText() 
CopyTo     Method   System.IO.FileInfo CopyTo(string destFileName) 
... 

Другой способ - использовать GetType(), чтобы получить, ну, только тип объекта.

(gci test.txt).GetType() 

IsPublic IsSerial Name     BaseType 
-------- -------- ----     -------- 
True  True  FileInfo    System.IO.FileSystemInfo 

Обратите внимание на TypeName. Это класс .Net, для которого Дэвид уже связал соответствующий MSDN documentation page.

Стоит отметить, что Get-Childitem имеет несколько типы результатов. То есть вы получите только System.IO.FileSystemInfo, когда gci нацеливает файл. Когда он нацелен на каталог, вы получите массив из System.IO.DirectoryInfo объектов.

Смежные вопросы