Hi, I am currently writing some command line tools and was wondering what the most portable way of having a script called myscript.vbs that works like any normal command line program. I have tried so far testing for the name of the script host executable and if it's wscript, then doing in an if block shell.run "cscript.exe """ & Wscript.ScriptFullName & """" WScript.Quit However this opens the script in a new cmd window which is a bit of a problem, especially since you can't read the output before the window closes. I know I can change the default scripting host of the system to be cscript instead of wscript but it would be nice to do this in a more portable way such that I don't have to change the host environment to achieve this. Also, if I change the scripting host, then whenever I run any wscript orientated script that I want to run behind the scenes, it pops up a cmd box, which looks rubbish. Perhaps there is a way of doing the shell.run in the current window or some completely different way of doing this? shell.Exec? Or get cscript to execute in the current window instead of starting a new one? Any ideas welcome. Thanks