Sự khác biệt giữa cscript và wscript là gì? Cách nào tốt nhất để thực hiện tự động hóa Telnet và FTP trong Windows?
Câu trả lời:
Trong Windows, tệp thực thi là ứng dụng bảng điều khiển hoặc ứng dụng Windows (hoặc ứng dụng SFU hoặc Native, nhưng điều đó không quan trọng ở đây).
Kernel kiểm tra một cờ trong tệp thực thi để xác định cờ nào.
Khi bắt đầu sử dụng CreateProcess
hàm WinAPI, nếu nó là một ứng dụng console, kernel sẽ tạo một cửa sổ console cho nó nếu process cha không có, và đính kèm STDIN
, STDOUT
và STDERR
các luồng vào console.
Nếu nó là một ứng dụng Windows, không có giao diện điều khiển sẽ được tạo ra và STDIN
, STDOUT
và STDERR
sẽ đóng cửa theo mặc định.
WSCRIPT.EXE
và CSCRIPT.EXE
gần như giống hệt nhau, ngoại trừ một cái được gắn cờ là ứng dụng windows và cái còn lại được gắn cờ là ứng dụng console (Đoán xem theo cách nào!).
Vì vậy, câu trả lời là: Nếu bạn muốn script của mình có cửa sổ console, hãy sử dụng CSCRIPT.EXE
. Nếu bạn muốn nó KHÔNG có cửa sổ giao diện điều khiển, hãy sử dụng WSCRIPT.EXE
.
Điều này cũng ảnh hưởng đến một số hành vi, chẳng hạn như lệnh WScript.Echo. Trong CSCRIPT.EXE
đó, ghi một dòng vào cửa sổ giao diện điều khiển. Trong WSCRIPT.EXE
đó hiển thị một hộp thư.
Đối với ứng dụng của bạn, tôi đề nghị CSCRIPT.EXE
. Tôi nghĩ bạn cũng nên xem PuTTY và PLink, và bạn cũng nên xem điều này ở đây: