Różnica między wscript i cscript

84

Jaka jest różnica między cscript a wscript? Co jest najlepsze do automatyzacji Telnet i FTP w systemie Windows?

rashok
źródło

Odpowiedzi:

129

W systemie Windows plik wykonywalny jest aplikacją konsoli lub aplikacją systemu Windows (albo aplikacją SFU lub aplikacją natywną, ale nie ma to znaczenia w tym przypadku).

Jądro sprawdza flagę w pliku wykonywalnym, aby określić, który plik.

Podczas uruchamiania za pomocą CreateProcessfunkcji WinAPI, jeśli jest to aplikacja konsola, jądro stworzy okno konsoli dla niego, jeśli proces rodzic nie masz, i dołączyć STDIN, STDOUTi STDERRstrumieni do konsoli.

Jeśli jest to aplikacja Windows, konsola nie zostaną utworzone STDIN, STDOUTi STDERRbędą zamknięte domyślnie.

WSCRIPT.EXEi CSCRIPT.EXEsą prawie identyczne, z wyjątkiem tego, że jedna jest oflagowana jako aplikacja Windows, a druga jako aplikacja konsolowa (Zgadnij, w którą stronę!).

Więc odpowiedź brzmi: jeśli chcesz, aby twój skrypt miał okno konsoli, użyj CSCRIPT.EXE. Jeśli chcesz, aby NIE posiadało okna konsoli, użyj WSCRIPT.EXE.

Wpływa to również na niektóre zachowania, takie jak polecenie WScript.Echo. W a CSCRIPT.EXEthis zapisuje wiersz w oknie konsoli. W WSCRIPT.EXEnim pokazuje skrzynkę wiadomości.

Do twojego zastosowania proponuję CSCRIPT.EXE. Myślę, że powinieneś również spojrzeć na PuTTY i PLink, a także powinieneś zobaczyć to tutaj:

Ben
źródło
5
@ McDonald's Po prostu staram się zarabiać na życie. Nie mam innego wyjścia, jak tylko użyć Stack Overflow, ponieważ nie ma alternatywy, i nie cierpię sposobu, w jaki właściciele nadal używają witryny do wyrażania politycznych uwag na temat tego, co utrudnia strawienie śniadania w tym miesiącu. Więc moja nazwa użytkownika jest moim protestem przeciwko takiemu upolitycznieniu każdej cholernej rzeczy .
Ben