标题: [技术讨论] VBS脚本exec的stdout怎么移动光标? [打印本页]
作者: jyswjjgdwtdtj 时间: 2023-8-11 17:16 标题: VBS脚本exec的stdout怎么移动光标?
本帖最后由 jyswjjgdwtdtj 于 2023-8-12 08:33 编辑
- set w=createobject("wscript.shell")
- set t=w.exec("cmd")
- msgbox t.stdout.read(1)
- t.stdout.write(chr(8))
- msgbox t.stdout.read(1)
复制代码
会输出
M
错误的文件模式
改成stdin.write(chr(8))没效果
stdout.skip(-1)/read(-1)也报错 不接受负数
怎么做到移动光标?那如果exec一个自己移动光标的控制台程序呢?
做一些无意义的思考
作者: jyswjjgdwtdtj 时间: 2023-8-12 09:00
当程序把输出输入到管道里 就不会再管什么退格键了1.vbs
- set w=createobject("wscript.shell")
- set t=w.exec("cscript /nologo 2.vbs")
- set f=createobject("scripting.filesystemobject")
- set ff=f.opentextfile("1.txt",2,true)
- wscript.sleep 100
- do
- ff.write t.stdout.read(1)
- loop
复制代码
2.vbs
- wscript.stdout.write string(70,"*")&"="
- for i=0 to 69
- wscript.stdout.write chr(8)
- wscript.stdout.write chr(8)
- wscript.stdout.write "-"
- next
- wscript.stdin.readline
复制代码
得到的输出是
**********************************************************************=----------------------------------------------------------------------
作者: czjt1234 时间: 2023-8-12 09:03
WshScriptExec.StdOut
标准输出句柄的对象(只读)
4个属性6个方法
只读的
WScript.StdOut
标准输出句柄的对象(只写)
FileSystemObject.GetStandardStream()
标准输出句柄的对象(只写)
作者: jyswjjgdwtdtj 时间: 2023-8-12 09:22
控制台程序的stdinout的光标位置与管道的stdinout光标位置无关1.vbs:
- set w=createobject("wscript.shell")
- set t=w.exec("cscript /nologo 2.vbs")
- wscript.sleep 100
- do
- msgbox t.stdout.read(1)
- loop
复制代码
2.vbs- for i=65 to 90
- wscript.stdout.write chr(i)
- next
- do
- wscript.stdout.write chr(8)
- wscript.sleep 1000
- loop
- wscript.stdin.readline
复制代码
作者: jyswjjgdwtdtj 时间: 2023-8-12 09:27
本帖最后由 jyswjjgdwtdtj 于 2023-8-12 09:55 编辑
readall和atendofstream不可使用 我想是因为在控制台的流没有结尾 只有等被close了 才会有结尾 才会拦截进程还有 如果到了末尾(即读完了 但不代表之后不会有输出) 再读 也会卡死
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |