Ruby 执行并提取部分结果
Ruby exec & extracting just part of the resutls
我试图从 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:如何转义命令路径中的space?
我尝试过的所有方法要么抱怨 'EMC NetWorker' 中的 space,要么根本不抱怨 return。我假设我需要做一些这样的事情,但不确定是什么:
exec "powershell -noprofile (& "$env:ProgramFiles\EMC NetWorker\nsr\bin\nsrports.exe" | Select-String -Pattern Service | Select-Object -ExpandProperty line).split(" ")[2]
命令的输出应该是这样的:
7937-9936
如有任何帮助,我们将不胜感激!
你可以试试这个:
a.match(/Service ports: ([0-9]+-[0-9]+)/)[1]
我试图从 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:如何转义命令路径中的space?
我尝试过的所有方法要么抱怨 'EMC NetWorker' 中的 space,要么根本不抱怨 return。我假设我需要做一些这样的事情,但不确定是什么:
exec "powershell -noprofile (& "$env:ProgramFiles\EMC NetWorker\nsr\bin\nsrports.exe" | Select-String -Pattern Service | Select-Object -ExpandProperty line).split(" ")[2]
命令的输出应该是这样的:
7937-9936
如有任何帮助,我们将不胜感激!
你可以试试这个:
a.match(/Service ports: ([0-9]+-[0-9]+)/)[1]