LINUX.ORG.RU

Как передать аргументы гостю на VM через командную строку? ( Vboxmanage )

 , ,


0

2

Всем привет! В Virtualboxe через Vboxmanage guestcontrol можно производить разные манипуляции в гостевой ОС прямо из командной строки хоста.

У меня Виртуалбоксе имеется гость Windows XP. На нем стоит конвертер. Задача в том, чтобы через командную строку хоста запустить конвертер, указать ему пути к файлам и получить ответ. Однако, у меня никак не получается передать в конвертер аргументы собственно и содержащие эти пути (и другие настройки).

Строка, которая без проблем работает в cmd гостя выглядит так:

"C:\Program Files\Converter\converter.exe" /cs 10000 /i "c:\pdf\1.pdf" /o "c:\final" /pwo 2

Судя по мануалу Vboxmanage, если я его правильно понял, эта же команда с хоста будет выглядеть так (пока тестирую на хосте с windows):

"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" guestcontrol "Windows" run --exe "C:\Program Files\Converter\converter.exe" --username root -- "/cs 10000" "/i C:\pdf\1.pdf" "/o C:\final" "/pwo 2"

Однако, приложение на госте не воспринимает аргументы:

-- "/cs 10000" "/i C:\pdf\1.pdf" "/o C:\word" "/pwo 2"

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

[-- [<argument1s>] ... [<argumentNs>]] 

Ссылка: https://www.virtualbox.org/manual/ch08.html#vboxmanage-guestcontrol

Как правильно написать аргументы с путями? Буду очень благодарен за помощь.



Последнее исправление: deniro21 (всего исправлений: 3)

Думаю, не следует объединять ключ и значение в один параметр кавычками. Кавычки нужны только для имени запускаемой программы из-за пробела между Program и files.

Elyas ★★★★★
()
Ответ на: комментарий от fornlr

Ну так первый аргумент - это имя приложения

Судя по мануалу https://www.virtualbox.org/manual/ch08.html#vboxmanage-guestcontrol

И кстате в мануале это тоже написанно

VBoxManage guestcontrol <uuid|vmname> run [common-options]
            [--exe <path to executable>] [--timeout <msec>]
            [-E|--putenv <NAME>[=<VALUE>]] [--unquoted-args]
            [--ignore-operhaned-processes] [--no-profile]
            [--no-wait-stdout|--wait-stdout]
            [--no-wait-stderr|--wait-stderr]
            [--dos2unix] [--unix2dos]
            -- <program/arg0> [argument1] ... [argumentN]]
...blabla... run --exe /path/pony.run ...blabla... -- "pony.run" "arg1" "arg2"
fornlr ★★★★★
()
Последнее исправление: fornlr (всего исправлений: 1)
Ответ на: комментарий от fornlr

Спасибо!

Fornlr, большое спасибо! Все именно так и есть. Заработало наконец-то) Кстати, кавычки действительно не обязательны. Они там на случай пробела нужны.

deniro21
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.