Хороший совет для устранения подобных проблем - заменить system
на puts
.Если вы сделаете это, вы поймете, что проблема в этой строке:
pth.gsub "/","\\"
Хотя вы, вероятно, хотели это:
pth.gsub! "/","\\"
Также я не уверен, что Windows cmd.exeлюбит одинарные кавычки, поэтому вам, вероятно, нужно исправить ваш ftype
вызов, чтобы использовать правильные двойные кавычки:
system("ftype pfReader=\"#{pth}\" \"%1\"")