У меня есть сценарий 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