用cscript在CMD中运行VBS程序如何用键盘输入值?
在 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
适用场景:
- 需要从文件或管道批量输入时。
注意事项
-
cscriptvswscriptcscript用于命令行环境,支持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)是最直接的选择。

浙公网安备 33010602011771号