0

Puppet で事実として使用できるように、Ruby からこれを行う方法を見つけようとしています。

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

どんな助けでも大歓迎です!

4

1 に答える 1