JScript, VBScript, TCC code in one .BTM file

Attached is a file called AllInOne.zip, which contains AllInOne.btm

AllInOne.btm
demonstrates having JScript, VBScript, TCC code in one .BTM file

Windows Scripting Host seems to only care about the package section of a file, and ignores everything else.

This .BTM can also be used as an .INI file.

Thus, the first part of this .BTM is TCC code,
the second part is VBScript/JScript code,
and the third part is an .INI file.

I'm posting this mainly for my future reference, but others may be interested also.

I tried to post the code for the .BTM in the forum, but it would not allow me to post it, saying that I had been blocked.

As the .BTM also contains WSF code (XML code), I'm thinking that is why I was not allowed to post it.

Joe
 

Attachments

  • AllInOne.zip
    1.4 KB · Views: 284
Thanks, Joe. That's pretty cool.

But I can't get it to work in a TCC library function. It seems to depend on more than the "package" section.

My library file is D:\data\tcclibrary\sv.btm. Since %0 doesn't make sense, I hard-code the file name into the cscript call, like this.

Code:
cscript //nologo //job:SVJOB "d:\data\tcclibrary\sv.btm?.wsf"

The tail of the library file looks like this (in VIEW).

1589126581104.png


When I execute the library function, I get

Code:
d:\data\tcclibrary\sv.btm?.wsf(103, 2) Windows Script Host: Unterminated entity reference - matching ';' not found

Any ideas?
 
Hey @vefatica,
This is in my file vb.library;
1589128067209.png

Note that I have other functions/code in my file vb.library.

From the folder where the vb.library file is located;
Code:
c:\program files\jpsoft\tcmd26\library>cscript //nologo vb.library?.wsf
Test

I then went and added COMMENT ENDCOMMENT, then;
Code:
c:\program files\jpsoft\tcmd26\library>library /r vb.library /u

c:\program files\jpsoft\tcmd26\library>cscript //nologo vb.library?.wsf
Test
and still did as it was supposed to.

Joe
 
OK ... got it working.

My library file had a few lines like this one.

Code:
    set name=%s[%i] & set /a i+=1

I don't know why but they screwed things up. All was OK when I changed them to the likes of

Code:
    set name=%s[%i]
    set /a i+=1

So what's up with the '&'?
 
The ampersand (&) is a reserved character in XML.

For example, if I make a library function, thus;
Code:
vbtest {
@setlocal
@echo off
set a=1
::&
}
...the XML Parser sees the ampersand (&) in the TCC code, and thinks that it is part of the XML code.

Joe