открыть файл с пробелом (или &) в имени, с приложением по умолчанию - PullRequest
0 голосов
/ 31 мая 2018

Я пытаюсь открыть файл, путь к которому C: \ Users \ kevin \ Documents \ LIN KED.png (или C: \ Users \ kevin \ Documents \ LIN & KED.png).Путь к файлу указывается в файле related_file_command.

Я хочу открыть файл в приложении по умолчанию в Windows.Я хотел бы продолжать использовать строку connected_file_command, просто чтобы иметь переменную вместо жестко заданного пути.

Я пробовал следующее:

1) system %{cmd /c "start #{linked_file_command}"}
(from /7392854/kak-otkryt-fail-v-prilozhenii-po-umolchaniy-rubin )

2) system('cmd /c start "" C:\Users\kevin\Documents\LIN KED.png')
(from https://www.ruby-forum.com/topic/209961 )

Результат для обоих:

Система поиска файлов C: \ Users \ kevin \ Documents \ LIN.(Система не может найти файл C: \ Users \ kevin \ Documents \ LIN)

Заранее спасибо ^. ^

Ответы [ 2 ]

0 голосов
/ 31 мая 2018

УПРАВЛЕНИЕ ПРОСТРАНСТВОМ

system('cmd /c start "" "C:\Users\kevin\Documents\LIN KED.png"')

Я читаю здесь superuser.com/questions/511486/…

Первые "" - это имя окна оболочки ивторое «» для команды (параметра)

MANAGE &

Не было необходимости, когда я использовал строку выше.

В других случаях попробуйте добавить '^' перед символами &

system('cmd /c start "" "C:\Users\kevin\Documents\LIN^&KED.png"')

from: Как избежать амперсандов в пакетных файлах?

0 голосов
/ 31 мая 2018

это должно работать

filePath = "c:\path\to\file name.jpg"
system %{cmd /c "start #{filePath}"}
...