Jaka jest różnica między cscript a wscript? Co jest najlepsze do automatyzacji Telnet i FTP w systemie Windows?
Odpowiedzi:
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ą CreateProcess
funkcji WinAPI, jeśli jest to aplikacja konsola, jądro stworzy okno konsoli dla niego, jeśli proces rodzic nie masz, i dołączyć STDIN
, STDOUT
i STDERR
strumieni do konsoli.
Jeśli jest to aplikacja Windows, konsola nie zostaną utworzone STDIN
, STDOUT
i STDERR
będą zamknięte domyślnie.
WSCRIPT.EXE
i CSCRIPT.EXE
są 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.EXE
this zapisuje wiersz w oknie konsoli. W WSCRIPT.EXE
nim 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: