Ruby exec&只提取部分结果

时间:2015-04-19 18:15:07

标签: ruby powershell puppet facter

我试图弄清楚如何从Ruby中做到这一点,以便我可以在Puppet中将其用作事实:

PS C:\> (& "$env:ProgramFiles\EMC NetWorker\nsr\bin\nsrports.exe" | Select-String -Pattern Service | Select-Oject -ExpandProperty line).split(" ")[2]
7937-9936

我厌倦了下面的内容无济于事,但意识到PowerShell并不是解决方案。使用irb我得到了这个:

irb(main):003:0> a = `'C:/Program Files/EMC NetWorker/nsr/bin/nsrports.exe'`
=> "Service ports: 7937-9936 \nConnection ports: 0-0 \n"

irb(main):005:0> puts a
Service ports: 7937-9936
Connection ports: 0-0
=> nil

我修改过的问题是:如何从变量中获取7937-9936部分?

编辑:如果我第一次接受此

,那么下面会有什么?

原标题: Ruby exec + powershell:如何在命令的路径中转义空格?

我尝试过的所有内容都会抱怨“EMC NetWorker”中的空间。或者根本不归还任何东西。我假设我需要做某种形式但不确定:

exec "powershell -noprofile (& "$env:ProgramFiles\EMC NetWorker\nsr\bin\nsrports.exe" | Select-String -Pattern Service | Select-Object -ExpandProperty line).split(" ")[2]

命令的输出应为:

7937-9936

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

你可以试试这个:

a.match(/Service ports: ([0-9]+-[0-9]+)/)[1]