Groovy:解析注册表值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Groovy:解析注册表值相关的知识,希望对你有一定的参考价值。

我刚开始编写我的第一个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'?

谢谢。

答案

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

HKEY_LOCAL_MACHINE SOFTWARE 软件 UDF1

PatchRebootGroup REG_SZ Group1

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

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

def parts = process.text.split('
')[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()
另一答案

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

String output = 'reg query HKEY_LOCAL_MACHINE\SOFTWARE\App\UDF1 -v PatchRebootGroup'.execute().text
String group = output.tokenize(' ')[-1]
println 'DesiredPatchRebootGroup=' + group
return 0

以上是关于Groovy:解析注册表值的主要内容,如果未能解决你的问题,请参考以下文章

在 Groovy 中将字符串 XML 片段转换为文档节点

groovy怎么解析xml文件

Java中Lambda表达式和Groovy闭包的相关解析

Groovy 和 Jenkins - 将 curl 输出捕获到文件

GroovyGroovy 方法调用 ( Groovy 构造函数中为成员赋值 | Groovy 函数的参数传递与键值对参数 | 完整代码示例 )

soapUI groovy脚本groovy.lang.MissingMethodException