【问题标题】:How to recursively search for a file in a remote server如何递归搜索远程服务器中的文件
【发布时间】:2017-06-14 09:14:44
【问题描述】:

我正在使用dir \\pwdf1280\rep\"*.txt" /S 搜索文件夹rep 中的所有txt 文件。我使用/S 参数在子目录中搜索相同的,但问题是命令永远运行。我基本上是在编写一个 perl 脚本,它必须找到这些文件及其时间戳。

有没有其他方法可以解决这个问题,或者我可以改进上述命令吗?

问题是我上面提到的 dir 命令永远运行并且不显示存在于rep's 子目录中的文件。它只显示存在于rep 目录中的文件。我想在rep's 子目录中搜索一个文件。

【问题讨论】:

  • 请澄清您的具体问题或添加其他详细信息以准确突出您的需要。
  • 如果您正在遍历目录树,那么......这将是缓慢的部分。但是,如果您的想法不正确,请查看File::Find::Rule。
  • @Sobrique 我使用了File::Find::Rule,该函数是否将UNC路径作为参数
  • @Sobrique @full_pathes = File::Find::Rule->file->name("*.log")->in('\\\pwdfm123\\logs') 我可以将UNC路径作为参数传递吗,它不起作用,我做错了什么
  • @kewin: “它不起作用” 是对问题的可怕描述。

标签: cmd windows-server-2008 remote-server


【解决方案1】:

一种可能加快进程的方法是使用 PowerShell 在远程计算机上运行目录搜索。

C:\src\powershell> type .\rc001.ps1
Invoke-Command `
    -ComputerName 'pwdf1280' `
    -Command { Get-ChildItem '\\pwdf1280\rep' -Recurse -Filter '*.txt' } |
    ForEach-Object { $_.FullName }

然后,从 cmd 脚本运行:

C:\src\powershell> powershell -NoProfile -File .\rc001.ps1

替代方案可能是使用来自 SysInternals 的 psexec 或来自 PuTTY 的 plink 远程运行 dir 命令。

【讨论】:

  • 我想您是在问是否可以使用\\pwdf1280\rep 作为 Get-ChildItem 的路径。是的你可以。试试看。
  • 是的,我试过了,但错误是它不存在
  • 使用您的系统名称和目录路径。不要使用lit。 Get-ChildItem '\\pwdf1280\rep' -Recurse -Filter '*.txt'
  • 我已编辑答案以使用您的机器和目录路径。这对你有用吗?
  • 不,我在它不起作用之前尝试过,错误是它不存在
猜你喜欢
  • 2015-02-25
  • 2018-11-28
  • 2020-02-24
  • 2014-09-21
  • 1970-01-01
  • 2010-11-27
  • 1970-01-01
  • 1970-01-01
  • 2010-12-24
相关资源
最近更新 更多