[vbox-dev] Regarding possible solution to #13157 - Windows Command line argument handling error

Knut St. Osmundsen knut.osmundsen at oracle.com
Mon May 4 20:53:51 GMT 2015


Hi Magnus,

seems notepad.exe and few other windows apps are doing it for
themselves...  So, I've added an option to disable the quoting and
escaping.

New test build:
https://www.virtualbox.org/download/testcase/VirtualBox-4.3.27-100026-Win.exe

Try: VBoxManage guestcontrol <vm> exec [creds] --unquoted-args -- \
         c:\windows\system32\notepad.exe test=\"test\"

Notepad should now see test="test" and tell you off for giving in an
incorrect name.

Note! The --unquoted-args option only disables the final
RTGetOptArgvToString(,,MS_CRT) right before CreateProcessW is called
on the guest side.  On the VBoxManage command line, the shell/CRT will
interpret your command line first and turn it into argv, which is send
to the guest, thus the escaped double quotes (\").

Kind Regards,
 bird.

On 2015-04-29 17:47, Magnus Madsen wrote:
> Hi Knut,
> 
> I didn't realize that there had been modifications to the host side
> as well, but doing a test installation with 99834 the problem still
> occurs as far as I can tell. Calling IGuestProcess.ProcessCreate
> with the file name notepad.exe and a single argument test="test" 
> results in the process being created in the guest with the
> following command line:
> 
> notepad.exe "test=\"test\""
> 
> I am not sure what could be wrong with the configuration of my host
> to cause this issue if it is not related to VirtualBox. It happens
> with multiple different guest OS's (all Windows though).
> 
> 
> _______________________________________________ vbox-dev mailing
> list vbox-dev at virtualbox.org 
> https://www.virtualbox.org/mailman/listinfo/vbox-dev
> 




More information about the vbox-dev mailing list