By katsumii on Jul 23, 2013
Here's simple and stupid one liner for exporting all VirtualBox guests in separate files.
$ vboxmanage list vms| > sed 's/^"\(.*\)".*$/\1/'| > while read line; do > vboxmanage export $line --output $line.ova > done
One can export multiple vbox guests to one file. That's why I call this 'stupid'. Often times, it's ideal to group vbox guests and export by groups.
Anyway, the above doesn't work if vbox guest name contains ' '(space) or '()' (braces).
Here's how I worked this around. I also removed ' '(space) from export filename.
$ vboxmanage list vms| > sed 's/^"\(.*\)".*$/\1/;s/ /\\\\ /;s/(/\\\\\(/;s/)/\\\\\)/'| > while read line; do > eval vboxmanage export $line --output $(echo $line|sed 's/\\ //').ova > done