我有一个变量,其中包含我的PC的目录。我想计算并获得将在变量内写入的分区。
$test = "D:\hey,D:\bye,C:\AnotherDirectory"
我想要这样的输出:
D=2 C=1
如果可能的话,我想将它们放在一个变量中。
我看了一下正则表达式,发现使用此代码[A-Z]:
与https://regexr.com/中的D:
,D:
和C:
匹配,但是我没有想出如何实现它或如何获得它获得的价值。
答案 0 :(得分:3)
您可以像这样获得每个驱动器号的频率列表:
$test = "D:\hey,D:\bye,C:\AnotherDirectory"
[Regex]::matches($test.Split(','), "[a-zA-Z](?=:)") |
Group-Object Value -NoElement
哪个给出这样的输出:
Count Name
----- ----
2 D
1 C
如果您希望它们采用C=1
格式,则只需进行很小的更改:
[Regex]::matches($test.Split(','), "[a-zA-Z](?=:)") |
Group-Object Value -NoElement |
ForEach-Object {
"$($_.Name)=$($_.Count)"
}
哪个会产生:
D=2
C=1