Windows系统怎么查找包含某些文字的文本文档位置
发布日期:
作者: 西木
评论数:1 评论
很多人都知道怎么通过文件名来查找文件所在的位置,但有时候,你忘记了文件名,但是记住了该文档的一些文字,又想找到它在哪里,该怎么做呢?
下面就来举例演示一下, 比如有个文本文档,记得在D盘里存放,忘记文件名了,但是记得里面有一句“我今天心情很好”这句话,如何找到这个文本文档在哪里。
需要使用PowerShell命令来搜索:
1. 右键windows键,然后点击终端,如图:

2. 打开后看到ps开头的:

2. 然后执行命令:
Get-ChildItem -Path "D:\" -Filter "*.txt" -Recurse | Select-String -Pattern "我今天心情很好" | fl Path
就会返回文本文档所在的位置和文件名了,如图:

命令解释:
- Get-ChildItem -Path “D:\” -Filter “*.txt” -Recurse:在D盘及其所有子文件夹中查找所有扩展名为
.txt
的文件(如果要查的文件不是txt文件,更改为相应的扩展名)。你可以将D:\
替换为其他目录,例如C:\
或.
(当前目录)。 如果你不确定文件在哪个盘里,可以将其他盘都试着搜一遍。
- Select-String -Pattern “我今天心情很好”:在找到的文件中搜索包含“我今天心情很好”的行。
- fl Path:Format-List的缩写,会将每个对象的属性以列表的形式显示,这样即使路径很长也能完整显示。
- 上面的命令支持txt、json、html、xml、php等等这类纯文本格式,无法搜索docx这类二进制格式的文档。
假如要搜索docx文档,命令如下:
$searchTerm = "我今天心情很好"
$searchPath = "D:\"
Get-ChildItem -Path $searchPath -Recurse -Filter *.docx | ForEach-Object {
$doc = $null
try {
# 创建 Word 应用程序对象
$word = New-Object -ComObject Word.Application
$word.Visible = $false
$doc = $word.Documents.Open($_.FullName)
# 搜索文件内容
if ($doc.Content.Text -like "*$searchTerm*") {
Write-Output $_.FullName
}
} catch {
Write-Output "Error processing file: $_.FullName"
} finally {
# 确保关闭文档和 Word 应用程序
if ($doc) { $doc.Close() }
$word.Quit()
}
}
说明:
- Word.Application:使用 Microsoft Word 的 COM 接口加载
.docx
文件。 - $doc.Content.Text:提取文档内容为纯文本,搜索其中的目标字符串。
- 确保关闭 Word 应用程序,否则可能会导致资源泄漏。
执行命令后,效果如下:

Shay
说:Greetings! Very helpful advice within this post! It’s the little changes that make the most
significant changes. Thanks for sharing!