質問: CreateObject("Wscript.Shell") ws.run "cmd /c ""c:\Program Files\Oracle\VirtualBox\VBoxHeadless.exe"" -v off -s CentOS", vbhide ws.run "C:\Users\{ユーザー名}\AppData\Roaming\PuTTY\putty.exe -load Project -l aaa -pw aaa" ``` 今回、諸事情により仮想マシン名の変更を余儀なくされたため、次のように変更しました 仮想マシン名 CentOS -> CentOS - B ``` ws.run "cmd /c ""c:\Program Files\Oracle\VirtualBox\VBoxHeadless.exe"" -v off -s CentOS - B", vbhide ``` 仮想マシン名に半角スペース、あるいはハイフンが含まれていることが原因で上記の行が動作しなくなっております。 マシン名をシングルクオーテーション、ダブルクオーテーションなどで囲んでも動きません。 半角スペース、あるいはハイフンを含まないようにマシン名を書けば動くようになることはわかっていますが、 ちょっとしたこだわりで、可能であれば半角スペース、あるいはハイフンを含んでいても動作するようにさせたいです。。 何か良い方法はございますでしょうか?回答お待ちしております。
回答: 手元の端末にVirtualBoxは入っていないので未検証ですが、単純にこんな感じでできないでしょうか? ``` ws.run """c:\Program Files\Oracle\VirtualBox\VBoxHeadless.exe"" ""CentOS - B"" " ``` 以下のような第一引数をメッセージ表示するVBSでは"CentOS - B"を引数として受け取れていました。 ``` '引数をメッセージ表示する msgbox "Param1:" & WScript.Arguments(0) ``` 追記 以下に参考になりそうなサイトがありましたのでご紹介します。 http://digitalbox.jp/howto-run-guest-os-on-virtualbox-without-window/ 「-s」はcmdのオプションではなくVBoxHeadless.exeの引数だったのですね(^-^;