Welcome!

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

SignUp Now!

FOR problem

Sep
50
0
in version 24 and 23 these lines cause a complete stop TCC and TCC-RT
in version 21 and below works without errors.

Set adminmess=%@line[t:\e-mail\system\list_adm_mess,0]
For %%iad in (%adminmess) (If %iad==%dir Set enbl=1)
 
Set dir=%@line[id,0]
ID file - it contains a string with the name of the user, for example, a SYSADMIN
list_adm_mess file - it contains a string with usernames, for example: sysadmin user1 user2

In all earlier versions it worked without problems.
 
It seems OK here, v24.02.49.
Code:
v:\winlanem> type id
sysadmin

v:\winlanem> type list_adm_mess
sysadmin user1 user2

v:\winlanem> type test.btm
Set dir=%@line[id,0]
Set adminmess=%@line[v:\winlanem\list_adm_mess,0]
For %%iad in (%adminmess) (If %iad==%dir Set enbl=1)
v:\winlanem> unset enbl

v:\winlanem> test.btm

v:\winlanem> echo %enbl
1
 
It seems OK here, v24.02.49.
Code:
v:\winlanem> type id
sysadmin

v:\winlanem> type list_adm_mess
sysadmin user1 user2

v:\winlanem> type test.btm
Set dir=%@line[id,0]
Set adminmess=%@line[v:\winlanem\list_adm_mess,0]
For %%iad in (%adminmess) (If %iad==%dir Set enbl=1)
v:\winlanem> unset enbl

v:\winlanem> test.btm

v:\winlanem> echo %enbl
1

This is under Windows 10 x64. I have not tried running under other versions of Windows, but I am confused by the fact that running version 21 and below all this works without errors in both Win 7 and Win 10
 
I understood what the problem was. When accessing files or folders that are on a network resource. I repeat that neither the hardware nor the software configuration of the computer has changed. Only new version TCC is installed. In version 21 and below, everything works, in version 23 and above - the indicated problems have appeared.


Set dir=%@line[id,0]
Set ru=HKLM\Software\WinLanEm\Users\%dir\Config
Set disk=%@REGQUERY[%ru\netpath]

rem netpath=\\192.168.102.200\channel

Set adminmess=%@line[%disk\e-mail\system\list_adm_mess,0]
For %%iad in (%adminmess) (If %iad==%dir Set enbl=1)
If isdir %disk\e-mail\system\x64\adm\%dir Set enbl=1 %+ Set enbl1=1
.........................

Iff exist %disk\%m\%dirspa\new\acc Then
Set curd=%@makeage[%_date,%_time]
set fild=%@fileage[%disk\%m\%dirspa\new\acc]
..............................
 
If isdir %disk\e-mail\system\x64\adm\%dir Set enbl=1 %+ Set enbl1=1

That looks like the culprit. A similar statement
Code:
if 1 == 1 echo foo %+ echo bar
with option DuplicateBugs=Yes will cause v22, v23, and v24 to stop dead (CPU = 100%). That is not the case in v21.

Change "%+" to "&" and the problem goes away.
 
I learned my lesson on this one -- never, ever give the users a temporary crutch to ease the porting between command processors. (In this case, to allow running batch files in both 4DOS and 4NT. 25 years ago!)

Useless for the past 15+ years, officially deprecated 10 years ago, and I still can't stop people from using %+ ...

I've added a kludge to 24.02.50 to fix the infinite loop.
 
Yes, replacing % + with & helped. And I forgot to say that CPU = 100%. Vefatica - you are a genius.
No genius required. When you posted it, "%+" stuck out like a sore thumb. I hadn't seen it, or any discussion of it, in years. It was begging to be tested.
 
I still can't stop people from using %+

Maybe because the current documentation TCC > Variables & Functions > Variables > + pseudovariable basically says...

USE ME!
USE ME IF YOU ALWAYS WANT IT TO WORK!
HERE'S AN EXAMPLE PROVING YOU SHOULD USE ME!

note: I'm deprecated.

2019-04-18_13-34-56.png
 
And at the bottom, it says this was deprecated in v17, and most support removed in v20.

I rather think that’s the point that JohnQSmith is making; that warning should be at the top, front and centre, if it’s not meant to be used any more.
 

Similar threads

Back
Top