92

What is the difference between cscript and wscript? Which is best for doing Telnet and FTP automation in Windows?

0

1 Answer 1

137

In Windows, an executable is either a console application or a Windows application (or a SFU or Native application, but that doesn't matter here).

The kernel checks a flag in the executable to determine which.

When starting using CreateProcess WinAPI function, if it is a console application, the kernel will create a console window for it if the parent process doesn't have one, and attach the STDIN, STDOUT and STDERR streams to the console.

If it is a Windows application, no console will be created and STDIN, STDOUT and STDERR will be closed by default.

WSCRIPT.EXE and CSCRIPT.EXE are almost exactly identical, except that one is flagged as a windows application and the other is flagged as a console application (Guess which way around!).

So the answer is: If you want your script to have a console window, use CSCRIPT.EXE. If you want it to NOT have a console window, use WSCRIPT.EXE.

This also affects some behaviors, such as the WScript.Echo command. In a CSCRIPT.EXE this writes a line to the console window. In WSCRIPT.EXE it shows a messagebox.

For your application I suggest CSCRIPT.EXE. I think you should also look at PuTTY and PLink, and you should also see this here:

2
  • 7
    @McDonald's I'm just trying to make a living. I have no real choice but to use Stack Overflow as there is no alternative, and I detest the way the owners keep using the site to make political points about whatever is making it hard to digest their breakfast that month. So my username is my protest against that sort of politicisation of every damned thing.
    – Ben
    Commented Aug 25, 2017 at 8:19
  • Simple and clear cut for people like me who don't know any basics too
    – Suresh
    Commented Dec 31, 2022 at 3:40

Not the answer you're looking for? Browse other questions tagged or ask your own question.