目标
在chocolatey Gallery上将已安装的巧克力包与最新可用版本进行比较,如果最新版本>已安装版本,则安装(cinst packageName
(最新版本。
问题
本文中为java -version
工作的代码已用于读取clist -lo
的输出。
command = "clist -lo"
require 'open3'
Open3.popen3(command) do | stdrin, stdout, stderr|
p stderr.read
p stdout.read
end
也不返回stderr.read
,也不返回命令提示符时的输出stdout.read
。路径变量正确。在默认路径上使用cmd执行clist -lo
将返回已安装Chocolatey软件包的列表。
问题
如何使用Ruby获得clist -lo
的输出?
不确定这是否是您想要的,但您可以使用capture3
而不是popen3来捕获输出。
command = "clist -lo"
require 'open3'
stdout, stderr, status = Open3.capture3(command)
puts "stdout: #{stdout}"
puts "stderr: #{stderr}"
puts "status: #{status}"
中的结果
stdout: 7zip.install 9.22.01.20130618
autohotkey_l 1.1.13.01
autohotkey_l.install 1.1.13.01
chocolatey 0.9.8.23
ChocolateyGUI 0.11.1
ConsoleZ 1.9.1.13351
cyg-get 1.1.0
cygwin 1.7.23.20130814
expresso 3.0.4334.20120225
git.install 1.8.3
Listary 4.02.1360
PowerShell 3.0.20121027
putty 0.63.0
ruby 2.0.0.24700
TeraCopy 2.27
Reading environment variables from registry. Please wait... Done.
stderr:
status: pid 47528 exit 0
对我来说