如何使用批处理创建一个vbs文件
问题描述:
我想让这个批处理文件运行很多事情,它只输入最后一个vbs行到实际的vbs文件。如何使用批处理创建一个vbs文件
:run
cls
color 0a
cd "%userprofile% \desk"
if exist run1.vbs del run1.vbs
copy Nul "run1.vbs"
echo set b=createobject("wscript.shell") >> "run1.vbs"
echo x=inputbox ("type:") > "run1.vbs"
echo strtext = (x) > "run1.vbs"
echo if x=("exe") then > "run1.vbs"
echo y=inputbox("run:") > "run1.vbs"
echo b.run (y) > "run1.vbs"
echo end if > "run1.vbs"
echo if x=("spam") then > "run1.vbs"
echo z=inputbox ("spam:") > "run1.vbs"
echo wscript.sleep 2000 > "run1.vbs"
echo for var = 1 to 50 > "run1.vbs"
echo b.sendkeys z > "run1.vbs"
echo b.sendkeys "{ENTER}" > "run1.vbs"
echo next > "run1.vbs"
echo end if > "run1.vbs"
cd "%userprofile% \desk"
start run1.vbs
ping -n 3 127.0.0.1>nul
exit
答
最好尝试创建一个hybrid file:
<!-- : Begin batch script
@echo off
:run
cls
color 0a
cd "%userprofile%\desk"
cscript //nologo "%~f0?.wsf"
ping -n 3 127.0.0.1>nul
exit /b
----- Begin wsf script --->
<job><script language="VBScript">
set b=createobject("wscript.shell")
x=inputbox ("type:")
strtext = (x)
if x=("exe") then
y=inputbox("run:")
b.run (y)
end if
if x=("spam") then
z=inputbox ("spam:")
wscript.sleep 2000
for var = 1 to 50
b.sendkeys z
b.sendkeys "{ENTER}"
next
end if
</script></job>
从UNIX shell的体验:'>'截断该文件,然后写进去。尝试'>>'或Windows批处理用于追加运算符的任何内容。 – 2014-10-01 04:24:42
靠近尾部的cd命令看起来不正确 - 删除\之前的空格,并在cd后添加a/d,以防万一您从另一个驱动器运行。 – cup 2014-10-01 04:51:25
更好地检查此:http://stackoverflow.com/questions/9074476/is-it-possible-to-embed-and-execute-vbscript-within-a-batch-file-without-using-a – npocmaka 2014-10-01 08:13:14