按特定文件夹对UNC文件列表进行排序

时间:2016-09-12 12:46:42

标签: sorting powershell

我有一堆服务器,有一组共同的日志文件夹。鉴于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

我如何按“服务”文件夹的字母顺序对这些结果进行排序?

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

2 个答案:

答案 0 :(得分:0)

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

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

或类似(如果所有UNC路径具有相同的结构):

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

答案 1 :(得分: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]}