ruby - создать экранированную команду в коде - PullRequest
0 голосов
/ 27 мая 2018

У меня есть следующая команда, которую я выполняю через Windows 10 command prompt, которая работает

C:> someapp.exe -n "conf:conf_abc:\"Acc 0 (ABC=234)\",\"ABC-DEF.GH.IJKL\",\"0\",\"\",\"0\",\"\"" -b input_file.abc -P vxyz > output_temp.def

Я хочу использовать это в коде Ruby как строку command и выполнить его с помощью system(command).

Я делаю следующее

command = "someapp.exe -n "conf:conf_abc:\"Acc 0 (ABC=234)\",\"ABC-DEF.GH.IJKL\",\"0\",\"\",\"0\",\"\"" -b input_file.abc  -P vxyz > output_temp.def"
system(command)

Это дает мне ошибку syntax error, unexpected tIDENTIFIER, expecting end-of-input

Как мне отформатировать команду, котораяработает в командной строке для работы в Ruby?

1 Ответ

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

Используйте %q sigil для предотвращения интерполяции строки:

command = %q|someapp.exe -n "conf:conf_abc:\"Acc...|
system(command)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...