gpt4 book ai didi

Powershell脚本来定位特定文件/文件名?

转载 作者:行者123 更新时间:2023-12-03 07:44:01 28 4
gpt4 key购买 nike

我想编写一个小脚本来搜索确切的文件名,而不是文件名中的字符串。

例如,如果我使用资源管理器搜索“主机”,默认情况下我会得到多个结果。对于脚本,我只需要我指定的名称。我假设这可能吗?

我才真正开始编写脚本,它仅供我个人使用,所以这并不重要,它只是让我烦恼。我有多个驱动器,因此我从 2 个输入开始,一个用于查询驱动器号,另一个用于指定文件名。我可以按扩展名、文件大小等进行搜索,但似乎无法将搜索固定到确切的名称。

如有任何帮助,我们将不胜感激!

编辑:感谢所有回复。只是为了更新。我在我的小脚本中添加了答案之一,效果很好。这三种 react 都有效,但我最终只能使用一种,无意冒犯其他两种。干杯。澄清一下,“npp”是 Notepad++ 的别名,用于在找到文件后打开该文件。

$drv = read-host "Choose drive"
$fname = read-host "File name"
$req = dir -Path $drv -r | Where-Object { !$PsIsContainer -and [System.IO.Path]::GetFileNameWithoutExtension($_.Name) -eq $fname }
set-location $req.directory
npp $req

最佳答案

在 powershell 提示符下,使用 gci cmdlet(别名 Get-ChildItem )和 -filter选项:

gci -recurse -filter "hosts"

这将返回与文件名“hosts”完全匹配的结果。


SteveMustafa指出在当前版本的 powershell 中,您可以使用 -File 开关给出以下内容,以递归方式仅搜索名为“hosts”的文件(而不是目录或其他杂项文件系统实体):

gci -recurse -filter "hosts" -File 


这些命令可能会打印许多红色错误消息,例如“访问路径'C:\Windows\Prefetch'被拒绝。”。

如果您想避免出现错误消息,请将 -ErrorAction 设置为静默。

gci -recurse -filter "hosts" -File -ErrorAction SilentlyContinue


另一个帮助器是您可以使用-Path设置要搜索的根。 例如,从 C 驱动器的根目录中显式搜索的结果命令将是

gci -Recurse -Filter "hosts" -File -ErrorAction SilentlyContinue -Path "C:\"

关于Powershell脚本来定位特定文件/文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3428044/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com