0

我们的产品由多个 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

谢谢 :)

4

1 回答 1

1

您可以尝试使用正则表达式进行“一体化”。

$services = (Get-Childitem -Path $logFiles -Name) -replace '(?:.+?)([^\.0-9]+)(?:\d+)(?:\.csv)', '$1' | Get-Unique
于 2013-02-22T16:09:26.627 回答