RUBY: строковый формат DOS TCPListener - PullRequest
0 голосов
/ 04 февраля 2020

У меня есть сценарий Power Shell, который отправляет данные слушателю Ruby на компьютере Linux. Когда я отправляю переменную $ env: COMPUTERNAME или любую другую переменную, например, «report.csv», я получаю странные выходные данные Linux: ' report.csv ?? ' или ' report.csv ^ M ».

Насколько я знаю, это потому, что DOS форматирует окончание ^ M. Я пытался с .gsub, но он все еще не работает, как ожидалось, потому что я получаю ' report.csv? ' с одним ? . Есть ли обходной путь?

#!/usr/bin/env ruby
require 'socket'
require 'base64'

begin
  server = TCPServer.open(1234)
  client = server.accept
  hostname = client.gets()
  out_put = client.gets()

  File.open(hostname.gsub(/\r\n?/, "\n"), "w") {|f| f.write(Base64.decode64(out_put))}
end

1 Ответ

0 голосов
/ 04 февраля 2020

Так что я, видимо, работал с .chomp

#!/usr/bin/env ruby
require 'socket'
require 'base64'

begin
  server = TCPServer.open(1234)
  client = server.accept
  hostname = client.gets()
  out_put = client.gets()

  File.open(hostname.chomp, "w") {|f| f.write(Base64.decode64(out_put))}
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...