【发布时间】:2017-07-25 01:05:22
【问题描述】:
批次内容:
echo Set wshShell =wscript.CreateObject("WScript.Shell")>"C:\Users\Riccardo\Desktop\prova.vbs"
<nul set /p =wshshell.sendkeys ^"^<nul set ^/p ^=>>"C:\Users\Riccardo\Desktop\prova.vbs"
Type "C:\Users\Riccardo\Desktop\prova.txt">>"C:\Users\Riccardo\Desktop\prova.vbs"
echo {bs}^>^"^"C:\Users\Riccardo\Desktop\prova.txt^"^"{enter}^">>"C:\Users\Riccardo\Desktop\prova.vbs"
wscript "C:\Users\Riccardo\Desktop\prova.vbs"
生成的vbs是:
Set wshShell =wscript.CreateObject("WScript.Shell")
wshshell.sendkeys "<nul set /p =La#{bs}>""C:\Users\Riccardo\Desktop\prova.txt""{enter}"
prova.txt 包含:
拉#
从新的命令提示符会话执行此行后:
wscript "C:\Users\Riccardo\Desktop\prova.vbs"
prova.txt 变成
拉
但是如果从批处理中执行与上面相同的行:
wscript "C:\Users\Riccardo\Desktop\prova.vbs"
什么都没有发生!
我该如何解决这个问题?
【问题讨论】:
-
无法复制。您能否创建一个没有所有硬编码路径的minimal reproducible example,以便所有人都能看到您的问题?
-
你好。简而言之,我需要通过批处理文件执行 my.vbs 文件。在命令提示符下输入代码: wscript "C:\Users\Riccardo\Desktop\prova.vbs" 可以,但是批量不行
-
哇,一个批处理脚本,用于创建一个 VBScript 以通过
SendKeys“键入”一个批处理命令(使用set /p写入文件不少于)。这是我很长一段时间以来见过的最可怕的事情之一。请抹去这种可憎的一切痕迹,然后重新开始。您要解决的实际问题是什么? -
整个代码有效。问题是通过批处理代码: wscript "C:\Users\Riccardo\Desktop\prova.vbs" 它不起作用,但它只能通过打开提示并手动输入来工作
-
我同意@AnsgarWiechers 的观点,有更好的方法来完成你想做的任何事情。
标签: batch-file vbscript