我在这里找到了搜索文件及其内容的代码,但是如何获得最后修改时间?
Get-ChildItem d:\* -filter $fname* | Select-String -Pattern "exit" | Write-Host - $_.Lastwritetime
答案 0 :(得分:5)
您已经有上次修改时间:
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 }
按路径对select-string的结果进行分组,然后枚举名称应该可以为您提供所需的内容。
答案 1 :(得分:0)
您可以使用Get-Member
cmdlet轻松找到属性。例如,
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类,David已将其链接到the relevant MSDN documentation page。
值得注意的是Get-Childitem
有多个结果类型。也就是说,当System.IO.FileSystemInfo
定位文件时,您只会获得gci
。当它定位目录时,您将获得一组System.IO.DirectoryInfo
个对象。