2016-09-12 89 views
0

我有一堆带有一组常见日志文件夹的服务器。给定UNC根路径,我有一个脚本来查找我需要的日志文件。 不过,我似乎无法弄清楚如何基于“服务”,这是沿着路径的文件夹进行排序,例如我的脚本返回下面按特定文件夹对UNC文件列表进行排序

\\Server1\C$\Logs\ServiceA\Logs\File.log 
\\Server1\C$\Logs\ServiceC\Logs\File.log 
\\Server2\C$\Logs\ServiceB\Logs\File.log 
\\Server2\C$\Logs\ServiceD\Logs\File.log

我怎么会这些结果按字母顺序排序的“服务'文件夹?

我似乎可以找出拆分,排序,加入。

回答

0

您可以将Sort-Object的条件作为一个脚本块提供,您可以将不需要考虑的所有内容(例如,像这样:

... | Sort-Object { $_ -replace '.*\\(Service[^\\]*)\\.*', '$1' } 

或像这样(如果所有的UNC路径具有相同的结构):

... | Sort-Object { ([uri]$_).Segments[3] } 
+0

奇妙,我使用的“{(URI] $ _)链段[。 3]}“它运作良好。谢谢。 – user3300840

+0

在PowerShell控制台中粘贴'[uri]'\\ Server1 \ C $ \ Logs \ ServiceA \ Logs \ File.log''并查看输出。 –

+0

非常感谢您的解释。我每天都会学到新的东西。 – user3300840

0
$Uris = '\\Server2\C$\Logs\ServiceD\Logs\File.log', 
'\\Server1\C$\Logs\ServiceC\Logs\File.log', 
'\\Server1\C$\Logs\ServiceA\Logs\File.log', 
'\\Server2\C$\Logs\ServiceB\Logs\File.log' 
$Uris | sort {([uri]$_).segments[3]} 
相关问题