Flying-Fox
(Fresh Scripter)
2003-05-14 06:23 PM
Q,Q,Q,...where is A?

various versions of kixtart confuse me!

a win98 logon script works well in kixtart 3.61 but not well in kixtart 3.63 even 4.20.

Q1:4.20 does not accept " if ingroup("domain internet")=1 and @domain=ABC " .

Q2:3.63 thinks " shell "COMMAND > null" " is error but 3.61 not.

Q3:kix32 is run from a batch file,it creates a console window.How to disable this window?

...........

Any ideas are welcome.Thanks.


Sealeopard
(KiX Master)
2003-05-14 06:30 PM
Re: Q,Q,Q,...where is A?

Please read the KiXtart Manual and the FAQ Forum as they contain the answers.

A) KiXtart 3.x and 4.x work fine under Windows 9x

B) INGOUP syntax has changed between 3.x and 4.x, this is documented in the KiXtart Manual

C) The redirection you typed is actually incorrect as you have to redirect to NUL

D) Of course KIX32 creates a console window. This is by design. For a console-less option, you have to run WKIX32.EXE. This, too, is docuemnted in the KiXtart Manual.

In general, if you change program versions, you will have to consult the programs manual to see what exactly has changed. You will then have to adapt!

[ 14. May 2003, 18:33: Message edited by: sealeopard ]


Flying-Fox
(Fresh Scripter)
2003-05-15 05:52 AM
Re: Q,Q,Q,...where is A?

Hi,sealeopard!Thanks for your response.
I agree that kixtart is a very good tool.I notice difference between various versions,too.But I hope the script is effective in new version kixtart.
Q1:"Ingroup()=1" works well at other place of the ame scrpit.I don't think that is key.When I write the script in version 3.61 ,I feel the logical expression easy to bring someone in trouble.I spent my long time to work it out.Just like the example above, " if ingroup("domain internet")=1 and @domain=ABC ",if the result is 1,version 4.20 skips the whole if...else...endif statement without warnings.It is normal while I cut it a half.
Q2:Redirecting to null is what I want.In version 3.61,it has no any problems.But inversion 3.63,"error command line parameter" message displays.If I cut "> nul" off,it can work.
Q3:when I use wkix32.exe 4.20 to run the same logon script,nothing is done and a console window is created too.In addition," %0\..\kix32 /i " doesn't work,it cannot find kixtart.kix located in NETLOGON. "%0\..\kix32 kixtart.kix /i" can work but open a window too.


Howard Bullock
(KiX Supporter)
2003-05-15 06:04 AM
Re: Q,Q,Q,...where is A?

For ingroup differences in 4.x please read:
http://www.kixtart.org/board/ultimatebb.php?ubb=get_topic;f=2;t=002805#000000
http://www.kixtart.org/board/ultimatebb.php?ubb=get_topic;f=2;t=002804#000000

Also
code:
 if ingroup("domain internet")=1 and @domain=ABC   

should be written
code:
 if ingroup("domain internet") and @domain="ABC"



[ 15. May 2003, 06:05: Message edited by: Howard Bullock ]


LonkeroAdministrator
(KiX Master Guru)
2003-05-15 10:23 AM
Re: Q,Q,Q,...where is A?

ingroup()=1 should work just fine still...
ingroup()=2 should fail...


Flying-Fox
(Fresh Scripter)
2003-05-15 04:34 PM
Re: Q,Q,Q,...where is A?

Thanks for response.
I meant that "INGROUP()=1" and "@domain=ABC" work well but "INGROUP()=1 AND @domain=ABC" doesn't.
If its value is 1,kixtart 4.20 jumps to next statement and skip the whole "if...else...endif" structure.If its value is 0,kixtart 4.20 will correctly finish all commands in "else...endif". Why?

Regards


LonkeroAdministrator
(KiX Master Guru)
2003-05-15 04:36 PM
Re: Q,Q,Q,...where is A?

can't be.
it would be like kixtart would then function just reverse what you are asking it to...


Sealeopard
(KiX Master)
2003-05-15 04:37 PM
Re: Q,Q,Q,...where is A?

code:
"INGROUP()=1 AND @domain=ABC"

will not work becasue it's incorrect syntax.
code:
"INGROUP()=1" and "@domain=ABC"

is technically correct syntax but definitely not the way you want to write it. The best/recommended way is still
code:
IF INGROUP('Groupname') And @domain='ABC'



LonkeroAdministrator
(KiX Master Guru)
2003-05-15 04:41 PM
Re: Q,Q,Q,...where is A?

heh, just remembered someone using lot brackets...

you can always do it like:
IF (1=((1=INGROUP('Groupname')) And (@domain='ABC')))

heh...
just to get started [Wink]


Flying-Fox
(Fresh Scripter)
2003-05-15 06:31 PM
Re: Q,Q,Q,...where is A?

my code in confusion:
code:
 if  ingroup("domain internet")=1 and @domain=ABC 

But I am sure kixtart 4.20 accept it as a statement.(in debug mode)

Other code works well in a same script in 4.20:
code:
 if %config%="win" OR %windir%="C:\WINDOWS" OR %windir%="D:\WINDOWS" 

All codes above work well in 3.61 and 3.63 .

The following codes are from kix2001.doc(4.20):
code:
 IF (($X*2) < 10) OR ($Y + 100) /3 >120
; do stuff
ENDIF

IF INSTR(%PATH%,"NETLOGON") AND @DOS = "3.51"
; do stuff
ENDIF

IF (SUBSTR(@WKSTA,11,1)="1" AND @USERID = "PETERV") OR @DOMAIN = "VleerBeer"
; do stuff
ENDIF

IF @USERID = "RUUDV" OR @USERID = "WIMW"
; do stuff
ENDIF

[Confused] [Confused] [Confused]


Flying-Fox
(Fresh Scripter)
2003-05-15 06:39 PM
Re: Q,Q,Q,...where is A?

I really agree with using brackets.I really agree kixtart is a free format language except this problem. [Smile]

Sealeopard
(KiX Master)
2003-05-15 07:06 PM
Re: Q,Q,Q,...where is A?

So, please clarify. What is wrong with
code:
if  ingroup('domain internet') and @domain='ABC'
endif



Flying-Fox
(Fresh Scripter)
2003-05-17 07:51 AM
Re: Q,Q,Q,...where is A?

Thanks for all feedback.
I am checking all my work again and building a mini NT network to research the problem.Something wrong with my operations have been found.The result in details will be post next time.

Have a nice weekend!