Groovy:解析注册表值

问题描述 投票:0回答:2

我刚开始编写我的第一个Groovy脚本,其中我想从Windows注册表中读取字符串的值并将返回的内容的最后一部分打印到屏幕上。

这就是我所拥有的:

group = Runtime.getRuntime().exec('reg query HKEY_LOCAL_MACHINE\\SOFTWARE\\App\\UDF1 -v PatchRebootGroup');
System.out.println "patchRebootGroup=" + group;

reg命令的输出如下所示:

HKEY_LOCAL_MACHINE \ SOFTWARE \软件\ UDF1

PatchRebootGroup REG_SZ Group1

问题是,“如何打印'patchRebootGroup = Group1'?

谢谢。

string groovy split registry
2个回答
1
投票

假设您尝试执行的进程生成以下输出:

HKEY_LOCAL_MACHINE \ SOFTWARE \软件\ UDF1

PatchRebootGroup REG_SZ Group1

你可以先用\n拆分输入字符串,取最后一行,用单个空格拆分然后先读取最后一部分。像这样的东西:

def process = Runtime.runtime.exec('reg query HKEY_LOCAL_MACHINE\\SOFTWARE\\App\\UDF1 -v PatchRebootGroup')

def parts = process.text.split('\n')[1].split(" ")

def output = "${parts[0]}=${parts[2]}"

println output

Output

PatchRebootGroup=Group1

您还可以尝试以下方式初始化Process对象:

def process = ['reg', 'query', 'HKEY_LOCAL_MACHINE\\SOFTWARE\\App\\UDF1', '-v', 'PatchRebootGroup'].execute()

0
投票

以下是我最终使用的内容:

String output = 'reg query HKEY_LOCAL_MACHINE\\SOFTWARE\\App\\UDF1 -v PatchRebootGroup'.execute().text
String group = output.tokenize(' ')[-1]
println 'DesiredPatchRebootGroup=' + group
return 0
© www.soinside.com 2019 - 2024. All rights reserved.