0
我已经创建了一个批处理文件,通过它我试图创建一个.vbs文件并在其中放置一些命令。但我无法将我的所有命令转移到.vbs文件。批处理命令和VB脚本命令在一个文件中
@echo off
echo:
set /a i=1
:Loop
if %i% GTR 0 (
rem create temp vbs file
echo Dim IPAddress > temp.vbs
echo IPAddress="192.168.1.109" >> temp.vbs
echo SET WshShell = WScript.CreateObject("WScript.Shell"^) >> temp.vbs
echo WshShell.run("telnet.exe " &IPAddress) >> temp.vbs
echo WScript.Sleep 3000 >> temp.vbs
echo WshShell.SendKeys"qwert" >> temp.vbs
echo WshShell.SendKeys("{Enter}") >> temp.vbs
echo WScript.Sleep 3000 >> temp.vbs
echo WshShell.SendKeys"asdf123" >> temp.vbs
echo WshShell.SendKeys("{Enter}") >> temp.vbs
echo WScript.Sleep 1000 >> temp.vbs
echo ' Reboot Device >> temp.vbs
echo ' WshShell.SendKeys"reboot" >> temp.vbs
echo ' WshShell.SendKeys("{Enter}") >> temp.vbs
echo ' WScript.Sleep 1000 >> temp.vbs
echo strPath = WshShell.CurrentDirectory >> temp.vbs
echo ' Close telnet session >> temp.vbs
echo WshShell.Run "taskkill /im telnet.exe", , True >> temp.vbs
rem wscript C:\Users\guest\Desktop\temp.vbs
echo Reboot Count %i%
echo:
set /a i+=1
Timeout /t 90 >nul
GOTO Loop
) ELSE (
echo Out of if loop
)
以下是temp.vbs的实际输出文件
WshShell.run("telnet.exe "
WScript.Sleep 3000
WshShell.SendKeys"qwert"
WshShell.SendKeys("{Enter}")
WScript.Sleep 3000
WshShell.SendKeys"asdf123"
WshShell.SendKeys("{Enter}")
WScript.Sleep 1000
' Reboot Device
' WshShell.SendKeys"reboot"
' WshShell.SendKeys("{Enter}")
' WScript.Sleep 1000
strPath = WshShell.CurrentDirectory
' Close telnet session
WshShell.Run "taskkill /im telnet.exe", , True
temp.vbs的预期输出文件
Dim IPAddress
IPAddress="192.168.1.109"
SET WshShell = WScript.CreateObject("WScript.Shell"^)
WshShell.run("telnet.exe " &IPAddress)
WScript.Sleep 3000
WshShell.SendKeys"qwert"
WshShell.SendKeys("{Enter}")
WScript.Sleep 3000
WshShell.SendKeys"asdf123"
WshShell.SendKeys("{Enter}")
WScript.Sleep 1000
' Reboot Device
' WshShell.SendKeys"reboot"
' WshShell.SendKeys("{Enter}")
' WScript.Sleep 1000
strPath = WshShell.CurrentDirectory
' Close telnet session
WshShell.Run "taskkill /im telnet.exe", , True
请帮我在这实现了这种情况。
非常感谢您提前。
你必须在'echo'语句中隐藏所有的圆括号。这样说:不要使用SendKeys来编写telnet脚本。使用一个'telnet'命令,它实际上是脚本化的(如[PuTTY suite]中的['plink'](https://the.earth.li/~sgtatham/putty/0.70/htmldoc/Chapter7.html#plink) ://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html))。 –
有[更多优雅的方式](https://stackoverflow.com/a/9074483/1683264)做一个批+ VBScript混合。 (以及[更多示例](https://stackoverflow.com/search?q=user%3A1683264+batch+vbscript+wsf)。) – rojo
请停止宣传Frankenscripts。他们可能在智力上有一定的魅力,但他们在生产中维持和排除故障是一种痛苦。 –