我有一个TXT文件,其中包含以下文本:
someCommandName -parameterName1 *abc* -parameterName2 *efg* -parameterName3 *hij* -parameterName4 *klm*
请问您如何建议将-parameterName2
和-parameterName4
的读取编码为PowerShell脚本中的变量?
非常感谢您的帮助!
答案 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:\>