在 CMD 中使用 cscript 運行 VBS 腳本時,可以通過以下幾種方式實現鍵盤輸入值:
方法 1:使用 InputBox 函數(彈出對話框輸入)
' script.vbs
Dim userInput
userInput = InputBox("請輸入值:", "輸入標題")
If userInput <> "" Then
WScript.Echo "你輸入的是: " & userInput
Else
WScript.Echo "未輸入內容"
End If
運行方式:
cscript script.vbs
特點:
- 會彈出圖形化對話框(非純 CMD 界面)。
- 適合簡單交互,但依賴 GUI 環境。
方法 2:通過 WScript.StdIn 讀取標準輸入(純 CMD 交互)
' script.vbs
WScript.StdOut.Write "請輸入值: " ' 顯示提示(可選)
Dim input
input = WScript.StdIn.ReadLine() ' 讀取用户輸入
WScript.Echo "你輸入的是: " & input
運行方式:
cscript //Nologo script.vbs
關鍵點:
//Nologo參數隱藏版權信息,使輸入體驗更乾淨。- 輸入後需按 Enter 確認。
- 此方法在 CMD 中直接讀取鍵盤輸入,無圖形界面。
方法 3:通過命令行參數傳遞
' script.vbs
If WScript.Arguments.Count > 0 Then
WScript.Echo "參數是: " & WScript.Arguments(0)
Else
WScript.Echo "請通過命令行傳遞參數,例如: cscript script.vbs 你的值"
End If
運行方式:
cscript script.vbs "Hello World"
特點:
- 適合自動化場景,無需交互。
- 通過空格分隔多個參數(如
script.vbs arg1 arg2)。
方法 4:使用 stdin 重定向(批量輸入)
將輸入內容保存到文件(如 input.txt),然後重定向:
' script.vbs
Dim input
input = WScript.StdIn.ReadAll() ' 讀取所有重定向的輸入
WScript.Echo "輸入內容: " & input
運行方式:
cscript //Nologo script.vbs < input.txt
適用場景:
- 需要從文件或管道批量輸入時。
注意事項
cscriptvswscript
cscript用於命令行環境,支持StdIn/StdOut。wscript默認用於 GUI,可能不支持標準輸入。
- 調試提示
添加//Nologo避免輸出冗餘信息:
cscript //Nologo script.vbs
- 輸入驗證
在 VBS 中檢查輸入是否為空或合法:
If IsEmpty(input) Or input = "" Then
WScript.Echo "錯誤:未輸入內容"
WScript.Quit(1)
End If
完整示例(純 CMD 交互)
VBS 腳本 (input_demo.vbs):
WScript.StdOut.Write "請輸入姓名: "
Dim name
name = WScript.StdIn.ReadLine()
WScript.StdOut.Write "請輸入年齡: "
Dim age
age = WScript.StdIn.ReadLine()
WScript.Echo "你好, " & name & "! 你今年 " & age & " 歲。"
CMD 中運行:
cscript //Nologo input_demo.vbs
效果:
會依次提示輸入姓名和年齡,最後輸出結果。
通過上述方法,你可以靈活選擇適合場景的輸入方式。如果需要純命令行交互,方法 2(StdIn.ReadLine)是最直接的選擇。
本文章為轉載內容,我們尊重原作者對文章享有的著作權。如有內容錯誤或侵權問題,歡迎原作者聯繫我們進行內容更正或刪除文章。