Reputation:
I am trying to create a batch file that will create a VBScript. I tried doing something like:
echo somescripthere & morehere , andhere >> hello.vbs
pause (for debugging)
But when I run the batch file it responds with
"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.
Anyone know what is causing this and how I could fix it? I'm not that good at coding and even worse at VBScript.
Upvotes: 3
Views: 978
Reputation: 55
You should add escape character before "&"
echo somescripthere ^& morehere , andhere >> hello.vbs
Upvotes: 0
Reputation: 18857
Here is an example showing you how to create a vbscript from a batch file and execute it with cscript engine :
@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
::*********************************************************************
Another example to listen to a radio station online with vbscript and batch
@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%
Upvotes: 1