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 和 Jenkins - 将 curl 输出捕获到文件
GroovyGroovy 方法调用 ( Groovy 构造函数中为成员赋值 | Groovy 函数的参数传递与键值对参数 | 完整代码示例 )