You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用PowerShell多路径检索文件并仅返回文件名与服务器名

修改后的PowerShell脚本方案

先修正原脚本的逻辑问题,同时实现仅输出文件名和服务器名的需求:

$filename = Read-Host "请输入文件名或部分名称"
# 将所有目标路径整合为数组,简化统一处理
$targetPaths = @(
    "\\SERVER-1\test\Desktop\test",
    "\\SERVER-2\test\Desktop\test",
    "\\SERVER-3\test\Desktop\test"
)

# 查找匹配文件并提取所需信息
Get-ChildItem -Path $targetPaths -Recurse:$false | 
    Where-Object {$_.Name -like "*$filename*"} | 
    Select-Object Name, @{
        Name = "服务器名"
        Expression = { $_.FullName.Split('\')[2] }
    } | Format-Table -AutoSize

关键改动说明:

  • 把分散的路径变量合并为数组$targetPaths,修正了原脚本中无效的foreach循环逻辑,同时减少重复代码。
  • 将路径修正为\\开头的UNC格式(原脚本少一个反斜杠,会被识别为本地路径)。
  • 通过计算属性从文件完整路径中提取服务器名:用Split('\')按反斜杠分割路径,索引为2的元素就是服务器名称(例如\\SERVER-1\test\...分割后,数组第3个元素为SERVER-1)。
  • 用Select-Object指定输出Name(文件名)和自定义的服务器名字段,最后用Format-Table让输出排版更整齐。

如果需要递归查找子目录中的文件,只需将Get-ChildItem的-Recurse:$false改为-Recurse即可。

内容的提问来源于stack exchange,提问作者Uriel Cohen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 19:52:04