使用批处理文件创建一个VBScript
问题描述:
我想创建一个批处理文件,它将创建一个VBScript。 我试图做这样的事情:使用批处理文件创建一个VBScript
echo somescripthere & morehere , andhere >> hello.vbs
pause (for debugging)
但是当我运行的批处理文件,它与
"somescripthere" is not recognized as an internal or external command,
operable program or batch file.
"morehere" is not recognized as an internal or external command,
operable program or batch file.
"andhere" is not recognized as an internal or external command,
operable program or batch file.
任何回应知道是什么原因造成这一点,我怎么能解决这个问题?我不擅长编码,甚至在VBScript上更糟糕。
答
这里是你展示如何从一个批处理文件创建一个VBScript和cscript的引擎执行它的例子:
@echo off
Title Typewriter with speaking voice by Hackoo 2017
Color 0A & Mode con cols=70 lines=3
::*************************************************
Rem Just creating a vbscript file
Rem to be executed with cscript engine
(
echo strText=wscript.arguments(0^)
echo intTextLen = Len(strText^)
echo intPause = 150
echo For x = 1 to intTextLen
echo strTempText = Mid(strText,x,1^)
echo WScript.StdOut.Write strTempText
echo WScript.Sleep intPause
echo Next
echo Set Voice=CreateObject("SAPI.SpVoice"^)
echo voice.speak strText
)>%tmp%\%~n0.vbs
::*************************************************
:Main
set Msg="This is only a testing string to see if my script really works or not?"
Call :Typewriter %Msg%
set Msg=" This a message from a vbscript created from a batch file !"
Call :Typewriter %Msg%
set Msg=" I want to say Hello for everybody on Stackoverflow !"
Call :Typewriter %Msg%
Timeout /t 3 /nobreak>nul
if exist "%tmp%\%~n0.vbs" Del "%tmp%\%~n0.vbs"
Exit
::*********************************************************************
:TypeWriter
Cls
echo(
cscript.exe /noLogo "%tmp%\%~n0.vbs" "%~1"
exit /b
::*********************************************************************
又如使用VBScript和批处理
@echo off
Title Listen to the music with batch and vbscript
mode con cols=60 lines=3 & color 9E
echo.
Echo To stop the music just close this window
set "file=http://www.chocradios.ch/djbuzzradio_windows.mp3.asx"
set "vbsfile=%tmp%\%~n0.vbs"
(
echo Set Sound = CreateObject("WMPlayer.OCX.7"^)
echo Sound.URL = "%file%"
echo Sound.Controls.play
echo do while Sound.currentmedia.duration = 0
echo wscript.sleep 100
echo loop
echo wscript.sleep (int(Sound.currentmedia.duration^)+1^)*1000
)>%vbsfile%
cscript /nologo %vbsfile%
收听广播电台在线
答
你应该之前 “&”
echo somescripthere ^& morehere , andhere >> hello.vbs
脚本我加转义字符我抱怨'somescripthere'而不是'morehere'? – SomethingDark
它依次抱怨它们全部。 – GoldenLizardYT
你为什么不用现实世界的VBScript命令来尝试它。混淆这样的例子是毫无意义的。 – Squashman