我刚开始编写我的第一个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
你可以先用\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
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