2016-09-12 131 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]} 
相關問題