我们的产品包含多个WCF服务,可将某些数据记录到CSV文件中。每个服务都写入自己的文件集,其中文件使用序列号命名。例如:
Product.ServiceA1.csv
Product.ServiceA2.csv
Product.ServiceA3.csv
Product.ServiceB1.csv
Product.ServiceB2.csv
Product.ServiceB3.csv
这些文件都写入公共文件夹D:\Product\log
。
我正在编写一个脚本来处理每个服务的所有文件,并希望按服务名称识别结果,如下所示:
ServiceA: 25
ServiceB: 30
我已经提出了以下PowerShell代码来获取不同服务名称的列表,但是想知道是否有人有更好的方法。
# Get a list of all the file names; remove the 'Product' prefix and CSV file
# extension so we get just the base name.
$services = get-childitem $logFiles -Name | foreach { $_.Split(".")[1]}
# Remove all the sequence numbers and get a list of the unique names.
$services = [regex]::replace($services,'\d{1,3}','').split(" ") | get-unique
谢谢:)
答案 0 :(得分:1)
您可以尝试使用正则表达式进行“一体化”。
$services = (Get-Childitem -Path $logFiles -Name) -replace '(?:.+?)([^\.0-9]+)(?:\d+)(?:\.csv)', '$1' | Get-Unique