需要存储`system`的输出

时间:2016-02-14 10:17:19

标签: ruby string

我正在尝试将system的输出存储在变量中。

src_chksum =  'CertUtil -hashfile "C:\Users\Public\Videos\Wildlife.wmv" MD5'
print src_chksum

输出:

CertUtil -hashfile "C:\Users\Public\Videos\Wildlife.wmv" MD5

但实际输出分为三行:

MD5 hash of file C:\Users\abhishek.prusty\Desktop\wildlife.wmv:
d8 c2 ea fd 90 c2 66 e1 9a b9 dc ac c4 79 f8 af
CertUtil: -hashfile command completed successfully.

当我在上述代码中的反引号前使用system时,只返回并存储了True。感谢问题8753691,我删除了system并且只使用了后面的标记;我设法存储一行。

当输出分为多行时,我该怎么做?

1 个答案:

答案 0 :(得分:0)

如果您只需从该输出中提取md5哈希,可以使用:

src_chksum = `CertUtil -hashfile "C:\Users\Public\Videos\Wildlife.wmv" MD5`  #make sure you use the backticks instead of single quotation marks

md5_hash = src_chksum.split("\n")[1].gsub(' ', '')