Board logo

标题: [问题求助] 【已解决】VBS的wscript对象关于stdin stdout stderr的应用例子 [打印本页]

作者: c755731262    时间: 2015-4-25 18:06     标题: 【已解决】VBS的wscript对象关于stdin stdout stderr的应用例子

本帖最后由 c755731262 于 2015-4-26 09:49 编辑

关于wscript对象关于stdin stdout stderr的应用例子
作者: czjt1234    时间: 2015-4-25 21:00

方法:Wscript.StdIn.ReadAll()
从光标位置读取全部的输入数据,并移动光标到文末

语法:
Wscript.StdIn.ReadAll()

--------------------------------------------------------------------------------

示例:
(假定示例文件保存为C:\1.vbs)
  1. Dim S
  2. S = Wscript.StdIn.ReadAll()
  3. Wscript.Echo S
复制代码
运行cmd.exe
执行命令行cscript /nologo C:\1.vbs

这时程序等待用户输入

输入123,再按Ctrl+Z,再按回车键
(这时程序仍然等待用户输入)
按Ctrl+Z,再按回车键
输出123

说明Ctrl+Z在行首表示输入结束,否则表示Unicode字符
注意第一行的第一个字符不能是Ctrl+Z

--------------------------------------------------------------------------------

可以从文件导入字符,不能是0字节的空文件
  1. Dim S
  2. S = Wscript.StdIn.ReadAll()
  3. Wscript.Echo S
  4. Wscript.Echo
  5. Wscript.Echo "光标位置,行:" & Wscript.StdIn.Line
  6. Wscript.Echo "光标位置,列:" & Wscript.StdIn.Column
  7. Wscript.Echo
  8. Wscript.Echo "是否在行末:" & Wscript.StdIn.AtEndOfLine
  9. Wscript.Echo "是否在文末:" & Wscript.StdIn.AtEndOfStream
复制代码
运行cmd.exe
执行命令行cscript /nologo C:\1.vbs < C:\boot.ini

输出
[boot loader]
timeout=0
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional"
/fastdetect /usepmtimer
C:\mxldr=一键备份还原 MaxDOS 8

光标位置,行:6
光标位置,列:25

是否在行末:True
是否在文末:True
(C:\boot.ini的文件内容不同,输出结果也不相同)
作者: czjt1234    时间: 2015-4-25 21:01

本帖最后由 czjt1234 于 2015-4-25 21:04 编辑

方法:Wscript.StdOut.Write()从光标位置写入数据


语法:Wscript.StdOut.Write(string)


参数:string
要写入的内容。类型:String


示例:

(假定示例文件保存为C:\1.vbs)

  1. Wscript.StdOut.Write  "QQ" & vbCrLf & "20147578"
  2. Wscript.Echo "光标位置,行:" & Wscript.StdOut.Line
  3. Wscript.Echo "光标位置,列:" & Wscript.StdOut.Column
  4. Wscript.StdOut.Write "1234567"
复制代码


运行cmd.exe
执行命令行cscript /nologo C:\1.vbs


输出为:QQ20147578
光标位置,行:2
光标位置,列:9
1234567

作者: czjt1234    时间: 2015-4-25 21:07

属性:Wscript.StdIn
只读属性。用于Cscript.exe命令行环境输入信息。类型:TextStream对象

Set TextStream = Wscript.StdIn

标准的TextStream对象有4个属性9个方法

Wscript.StdIn对象是只读的TextStream对象
该对象有4个属性6个方法

属性
AtEndOfLine       只读属性。判断光标是否在行末。类型:Boolean
AtEndOfStream     只读属性。判断光标是否在文末。类型:Boolean
Column            只读属性。返回当前光标所在列号。类型:Long
Line              只读属性。返回当前光标所在行号。类型:Long

方法
Close             停止输入功能
Read              从光标位置读取数据,并相应移动光标位置
ReadAll           从光标位置读取全部数据,并移动光标到文末
ReadLine          从光标位置读取本行数据,并移动光标到下一行行首
Skip              光标位置后移
SkipLine          光标移到下一行行首

一般来说,Wscript.exe是vbs文件的默认执行程序

也可以在命令行用Cscript.exe执行vbs文件

Wscript.StdIn只能在Cscript.exe命令行环境执行,否则报错

--------------------------------------------------------------------------------

属性:Wscript.StdOut
只读属性。用于Cscript.exe命令行环境输出信息。类型:TextStream对象

Set TextStream = Wscript.StdOut

标准的TextStream对象有4个属性9个方法

Wscript.StdOut对象是只写的TextStream对象
该对象有2个属性4个方法

属性
Column            只读属性。返回当前光标所在列号。类型:Long
Line              只读属性。返回当前光标所在行号。类型:Long

方法
Close             关闭对象
Write             从光标位置写入数据
WriteBlankLines   从光标位置插入空行,相当于回车换行
WriteLine         从光标位置写入数据并回车换行

一般来说,Wscript.exe是vbs文件的默认执行程序

也可以在命令行用Cscript.exe执行vbs文件

Wscript.StdOut只能在Cscript.exe命令行环境执行,否则报错

--------------------------------------------------------------------------------

属性:Wscript.StdErr
只读属性。用于Cscript.exe命令行环境输出错误信息。类型:TextStream对象

Set TextStream = Wscript.StdErr

标准的TextStream对象有4个属性9个方法

Wscript.StdErr对象是只写的TextStream对象
该对象有2个属性4个方法

属性
Column            只读属性。返回当前光标所在列号。类型:Long
Line              只读属性。返回当前光标所在行号。类型:Long

方法
Close             关闭对象
Write             从光标位置写入数据
WriteBlankLines   从光标位置插入空行,相当于回车换行
WriteLine         从光标位置写入数据并回车换行

一般来说,Wscript.exe是vbs文件的默认执行程序

也可以在命令行用Cscript.exe执行vbs文件

Wscript.StdErr只能在Cscript.exe命令行环境执行,否则报错




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2