如何使用PowerShell从字符串读取变量?

时间:2018-11-01 19:05:45

标签: string powershell

我有一个TXT文件,其中包含以下文本:

someCommandName -parameterName1 *abc* -parameterName2 *efg* -parameterName3 *hij* -parameterName4 *klm*

请问您如何建议将-parameterName2-parameterName4的读取编码为PowerShell脚本中的变量?

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

将文件读入powershell变量然后进行正则表达式?然后重复匹配或仅使用匹配1和3? (从零开始的数组,因此parameter2为[1],依此类推)。请注意,我在末尾附加了“”,因为需要对最后一个参数与我进行的分组进行模式匹配。

PS C:\> $file
someCommandName -parameterName1 abc -parameterName2 efg -parameterName3 hij -par
ameterName4 klm

PS C:\> $line = $file+" "

PS C:\> $regex = [Regex]::new("(.*?)-(.*?)\s+?(.+?)\s+?")

PS C:\> $matches = $regex.Matches($line)

PS C:\> $matches[0]


Groups   : {0, 1, 2, 3}
Success  : True
Name     : 0
Captures : {0}
Index    : 0
Length   : 36
Value    : someCommandName -parameterName1 abc 

PS C:\> $matches[0].Groups[3].ToString()
abc

PS C:\> $matches[1].Groups[3].ToString()
efg

PS C:\> $matches[2].Groups[3].ToString()
hij

PS C:\> $matches[3].Groups[3].ToString()
klm

PS C:\>