Welcome!

By registering with us, you'll be able to discuss, share and private message with other members of our community.

SignUp Now!

Problem with calls in TCC batch file

Oct
2
0
Hi All

I've encountred a problem running jruby on my WinXP computer when attempting to start jruby in the TCC/Lite shell. I am using TCC LE 9.02.152.

I have created a test batch file which I run in TCC and in CMD shells.

CMD SHELL

C:\Test>test_class_path.bat
TEST_CP=start;C:\Test\somefile1.jar;C:\Test\somefile2.jar

TCC SHELL

[C:\Test]test_class_path.bat
TEST_CP=start;:setcp C:\Test\somefile1.jar;:setcp C:\Test\somefile2.jar


Notice the ":setcp" text

Here are the two batch files that are used to generate the above results. There are also two files named somefile1.jar and somefile2.jar in the test directory.

@echo off
rem test_class_path.bat
rem Run this batch file to see how TCC processes add data to environment var
SET TEST_CP=start
@call "_make_class_path.bat"
echo TEST_CP=%TEST_CP%
SET TEST_CP


@echo off
rem _make_class_path.bat
rem Test batch file to demo problem with batch file differences in TCC vs standard CMD.exe
SET TEST_CP=%TEST_CP%
rem ----- Set Up The Test Classpath ----------------------------------------
for %%i in ("C:\Test\*.jar") do @call :setcp %%i
goto :EOF

rem setcp subroutine
:setcp
if not "%TEST_CP%" == "" goto add
set TEST_CP=%*
goto :EOF

:add
set TEST_CP=%TEST_CP%;%*
goto :EOF


Is this a bug in TCC?

Thanks
Rudi
 
Quite possibly. It looks like the name of the subroutine is getting into %*, which doesn't seem correct to me.

As a workaround, I think you can do the same thing more simply via something like:

set test_cp=
for %f in ( c:\test\*.jar ) set test_cp=%test_cp;%f
set test_cp=%@right[-1,%test_cp]

(Suggestion to Rex for future versions: an option to @EXPAND for user-specified separator characters?)
 

Similar threads

Back
Top