我承认我今天很累,但即便如此,这也不能成为我目前使用 Powershell 为自己制造噩梦的借口。
基本上,目的是在目录中搜索某些 Word 文档中包含的字符串。然后我需要返回文件名、创建日期和上次写入时间。我以为很容易,但在某些阶段我已经偏离了轨道,并且仍在攀登中。
到目前为止,我所做的是运行搜索并将路径变量导出到文本文件,为我提供包含该字符串的文件的路径。然后,我尝试使用 foreach 循环加载文件的内容,并对通过管道传输到 Select-Object Name、CreationTime、LastWriteTime 的每个条目运行 Get-ChildItem。我终于 > 这到一个文本文件。然而,它现在似乎正在返回目录中每个文件的信息,而不仅仅是那些包含我正在搜索的字符串的文件。我感觉我把事情变得过于复杂化了,就像我对待这些事情一样。非常感谢任何帮助。
Get-ChildItem -Recurse -Include *.doc | Select-String "Shiba" | select-object path > C:\TRCALM\shibapath.txt
$files = get-content C:\TRCALM\shibapath.txt
foreach($i in $files){gci $i | select-object Name,CreationTime,LastWriteTime > C:\TRCALM\SHIBADates.txt}
最佳答案
你就快到了:
$files = (Get-ChildItem -Recurse -Include *.doc | Select-String "Shiba"| select-object path )
$k = foreach($i in $files){ (gci $i.Path | select-object Name,CreationTime,LastWriteTime) }
$k > C:\pst\SHIBADates.txt
关于string - Powershell Select-String 然后获取返回文件的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9112529/