#32122 - 2002-11-09 08:29 PM
older KIX-scripts (can we use it on latest kixtart versions?)
|
stukie
Fresh Scripter
Registered: 2002-11-06
Posts: 9
Loc: netherlands
|
We've a kix-script running under NT-4. Can we use this script in the latest version of kix?
(MCA: extend subject) [ 08. December 2002, 16:03: Message edited by: MCA ]
|
|
Top
|
|
|
|
#32126 - 2002-12-08 04:01 PM
Re: older KIX-scripts (can we use it on latest kixtart versions?)
|
MCA
KiX Supporter
   
Registered: 2000-04-28
Posts: 5152
Loc: Netherlands, EU
|
Dear,
In our opinion it isn't necessary to read your script line-by-line. Just run it in a test environment. The only two elements which aren't downwards compatible are - OLExxx functions. obsolete for KiXtart 4.x releases - way DIM statement is working. Since KiXtart 4.x it can be necessary to use REDIM
The page KiXtart Release Summary contains information about which command, function or macro what introduces during a specification kixtart release. Also the obsolete ones you will find there.
As alternative for seeing what is going wrong see our tool kixstrip.
Suggestion: use our tool kixstrip, which can add all kind of debugging code to your script. so you can see exactly which part of your script creates possible 'hanging' situation or which part of your script slows it down.
Our suggestion 1:
Very your syntax with our kixstrip tool. Possible call
kixstrip input.kix output.kix /block_check /show_structure
Our Suggestion 2:
A way to see what is going wrong can be done by our kixstrip tool with option /debug. At the end you only need to look at output file to see what was executed and what were the error status. The debugging file will not be overwritten.
QUESTIONs: - is it possible to see what is happening during a logging on session. - is it possible to see how long our script runs.
Advice: please run your script after adding our debugging code to it. How: - add debugging code? - is debugging possible without user intervention? YES - can is be usefull by logon or script problems? YES
A way of checking your script is by using our tool kixstrip on our site http://home.wanadoo.nl/scripting With the option /debug we add additional kixtart code, which shows
- which line was executed.
- what was the time of execution.
- what was the error status of previous executed line.
So it is possible to catch the error status of kixtart statements during a logon session.and it will show the last executed before script is crashing.
An example.
For changing your script with debugging code use f.e. kixstrip input.kix output.kix /debug
It is no longer necessary to change RedirectOutput statement for normal operation. The default debugging file will be %tmp%\kixdebug.txt. By an automatic cleaning of the %tmp% we advise to uncomment the line
;$_debug_file="c:\kixdebug.txt"
During the execution the information will be append to previous information. So it is possible to check the differences.
be sure above RedirectOutput file has write permissions.
A kixstrip output example of our script os.kix (reduced version) is:
code:
;CLS IF (instr("-3.0x-3.1x-3.2x-3.3x-","-"+substr(@kix,1,3)+"x-") <> 0) IF MessageBox("sorry, your kixtart "+@kix+" release is too old."+CHR(13)+CHR(10)+CHR(13)+CHR(10)+" please upgrade.","KiXtart "+@kix+" info",4112,300) ENDIF EXIT ENDIF COLOR C+/N ;AT (1,1) " "
$_debug_file="kixdebug.txt" ; - %tmp% directory - IF (len($_debug_file) <> 0) IF (substr("%tmp%",len("%tmp%"),1) = "\") $_debug_file="%tmp%"+$_debug_file ELSE $_debug_file="%tmp%\"+$_debug_file ENDIF ENDIF ;$_debug_file="c:\kixdebug.txt" IF RedirectOutput($_debug_file) ENDIF
? "-"+LCASE(@day)+" "+@date+" "+@time+"- kixtart "+@kix+"/3.19e script starting" IF (Val(substr(@kix,1,1)) >= 4) IF (len(@scriptname) <> 0) " ("+LCASE(@scriptname)+")" ENDIF ENDIF ? "-" IF ("$_debug_already_starting" <> "yes") ? "-curdir: "+LCASE(@curdir) ? "-scriptdir: "+LCASE(@scriptdir) IF (instr("-4.1x-","-"+substr(@kix,1,3)+"x-") <> 0) ? "-scriptname: "+LCASE(@scriptname) ENDIF ? "-startdir: "+LCASE(@startdir) ? "-" ? "-userid: "+LCASE(@userid)+"/"+LCASE(@wuserid) ? "-user priv: "+LCASE(@priv) IF (instr("-4.xx-","-"+substr(@kix,1,2)+"xx-") <> 0) ? "-version: inwin="+@inwin+"/dos="+@dos"/productsuite="+@productsuite+"/producttype="+@producttype"/csd="+LTRIM(RTRIM(@csd)) ELSE ? "-version: inwin="+@inwin+"/dos="+@dos ENDIF ? "-" IF (instr("-4.1x-","-"+substr(@kix,1,3)+"x-") <> 0) ? "-"+@cpu+" (memory "+MemorySize()+" MB)" ? "-" ENDIF ENDIF
$_debug_temp_name="" ; -format: yyyymmdd_hhmmss.sss_999 scriptname- IF (instr("-3.6x-","-"+substr(@kix,1,3)+"x-") <> 0) OR (Val(substr(@kix,1,1)) >= 4) IF (instr("-4.xx-","-"+substr(@kix,1,2)+"xx-") <> 0) $_debug_temp_name=@msecs SELECT CASE (len($_debug_temp_name) = 1) $_debug_temp_name="00"+$_debug_temp_name CASE (len($_debug_temp_name) = 2) $_debug_temp_name="0"+$_debug_temp_name ENDSELECT $_debug_temp_name="."+$_debug_temp_name IF Srnd(@msecs) ENDIF SLEEP 0.050 ELSE IF Srnd((-1)*32767/(substr(@time,7,2)+1)) ENDIF SLEEP 1 ENDIF $_debug_temp_name=substr(@date,1,4)+substr(@date,6,2)+substr(@date,9,2)+"_"+substr(@time,1,2)+substr(@time,4,2)+substr(@time,7,2)+$_debug_temp_name+"_"+Rnd() IF (len($_debug_temp_name) < 25) $_debug_temp_name=substr($_debug_temp_name+" ",1,25) ENDIF IF (instr("-4.1x-","-"+substr(@kix,1,3)+"x-") <> 0) IF (len(@scriptname) < 12) $_debug_temp_name=$_debug_temp_name+" "+substr(@scriptname+" ",1,12) ELSE $_debug_temp_name=$_debug_temp_name+" "+@scriptname ENDIF ENDIF ENDIF
IF ("$_debug_already_starting" <> "yes") ? "-debug file: "+$_debug_file ? "-debug name: "+LCASE($_debug_temp_name) ELSE IF (len($_debug_temp_name) <> 0) ? "-debug: "+LTRIM(RTRIM(LCASE($_debug_temp_name)))+" -> "+$_debug_file ELSE ? "-debug-file: "+$_debug_file ENDIF ENDIF
IF (instr("-3.6x-","-"+substr(@kix,1,3)+"x-") = 0) AND (Val(substr(@kix,1,1)) < 4) GOTO _debug_starting_point ENDIF DIM $_debug_name ; -create local variable- :_debug_starting_point $_debug_name=LCASE($_debug_temp_name) $_debug_already_starting="yes" ? "-" ?"----- start-"+@time+"-"+$_debug_name+"- @error @serror"?
?"- 1-"+@time+"- @error @serror "? $os="" ?"- 2-"+@time+"- @error @serror "? SELECT ?"- 3-"+@time+"- @error @serror "? CASE (@inwin = 1) AND (@dos = "5.1") ; - Windows XP - ?"- 4-"+@time+"- @error @serror "? $os="XP" ?"- 5-"+@time+"- @error @serror "? CASE (@inwin = 1) AND (@dos = "5.0") ; - Windows 2000 - ?"- 6-"+@time+"- @error @serror "? $os="W2K" ?"- 7-"+@time+"- @error @serror "? CASE (@inwin = 1) ; - Windows NT - ?"- 8-"+@time+"- @error @serror "? $os="NT4" ?"- 9-"+@time+"- @error @serror "? CASE (@inwin <> 1) AND (@dos = "4.90") ; - Windows ME - ?"- 10-"+@time+"- @error @serror "? $os="ME" ?"- 11-"+@time+"- @error @serror "? CASE (@inwin <> 1) AND (@dos = "4.10") ; - Windows 98 - ?"- 12-"+@time+"- @error @serror "? $os="W98" ?"- 13-"+@time+"- @error @serror "? CASE (@inwin <> 1) AND (@dos = "4.0") ; - Windows 95 - ?"- 14-"+@time+"- @error @serror "? $os="W95" ?"- 15-"+@time+"- @error @serror "? CASE 1 ?"- 16-"+@time+"- @error @serror "? $os="???" ; - undetermined - ?"- 17-"+@time+"- @error @serror "? ENDSELECT ?"- 18-"+@time+"- @error @serror "? ? "$$os "+$os
?"------- end-"+@time+"-"+$_debug_name+"- @error @serror" ? "-" ? "-"+LCASE(@day)+" "+@date+" "+@time+"- kixtart "+@kix+"/3.19e script ending" IF (Val(substr(@kix,1,1)) >= 4) IF (len(@scriptname) <> 0) " ("+LCASE(@scriptname)+")" ENDIF ENDIF ? "-" IF RedirectOutput("CON") ENDIF COLOR C+/N ? ? "Informative KIX "+@kix+":"+" debug info see "+CHR(34)+$_debug_file+CHR(34) IF (Val(substr(@kix,1,1)) >= 4) IF (len(@scriptname) <> 0) " ("+LCASE(@scriptname)+")" ENDIF ENDIF IF RedirectOutput($_debug_file) ENDIF ;($begin) ; ; mon 22-jul-2002 13:30:34 (kix 4.10 vs 3.19e) ; ;Informative KIXSTRIP: no errors found (input=1 output=1 skip=0). ; ;Summary KIXSTRIP: block structures ; - do:until [0:0] ; - for|each:in|to:step|next [0|0:0|0:0|0] ; - function:endfunction [0:0] ; - if:else:endif [0:0:0] ; - select:case:endselect [0:0:0] ; - while:loop [0:0] ;Informative KIXSTRIP: no block_structures found. ;Informative KIXSTRIP: no UDF's found. ;Informative KIXSTRIP: no labels found. ;Summary KIXSTRIP: BREAK CALL DEBUG DISPLAY ENDFUNCTION EXECUTE EXIT FUNCTION GET GETS GOSUB GOTO OLExxx PLAY QUIT RETURN RUN SHELL SLEEP THEN USE ; ;($end)
An output example of kix32 run:
code:
-sunday 2002/04/14 05:32:38- kixtart 4.02/3.04e script starting. - -curdir: d:\ -scriptdir: -startdir: c:\windows - -userid: MCA/MCA -user priv: guest -version: inwin=2/dos=4.0/productsuite=/producttype=Windows 95/csd=B - - start-05:32:39- 0 The operation completed successfully.
- 1-05:32:39- 0 The operation completed successfully.
- 2-05:32:39- 0 The operation completed successfully.
- 14-05:32:39- 0 The operation completed successfully.
- 15-05:32:39- 0 The operation completed successfully.
- 18-05:32:39- 0 The operation completed successfully.
$os W95 - end-05:32:39- 0 The operation completed successfully.
- -sunday 2002/04/14 05:32:39- kixtart 4.02/3.04e script ending. - -
When you still have problems please:
- put some code on the board.
- put your logon batch file on the board.
- put the output of a debugging run on the board.
- put a DIR list of your NETLOGON directory on the board.
- put a DIR list of your clients on the board with contains information
about: KIX32.EXE and KX*.DLL The translate of your scripts looks like
code:
;CLS IF (instr("-3.0x-3.1x-3.2x-3.3x-","-"+substr(@kix,1,3)+"x-") <> 0) IF MessageBox("sorry, your kixtart "+@kix+" release is too old."+CHR(13)+CHR(10)+CHR(13)+CHR(10)+" please upgrade.","KiXtart "+@kix+" info",4112,300) ENDIF EXIT ENDIF COLOR C+/N ;AT (1,1) " "
$_debug_file="kixdebug.txt" ; - %tmp% directory - IF (len($_debug_file) <> 0) IF (substr("%tmp%",len("%tmp%"),1) = "\") $_debug_file="%tmp%"+$_debug_file ELSE $_debug_file="%tmp%\"+$_debug_file ENDIF ENDIF ;$_debug_file="c:\kixdebug.txt" IF RedirectOutput($_debug_file) ENDIF
? "-"+LCASE(@day)+" "+@date+" "+@time+"- kixtart "+@kix+"/3.20e script starting" IF (Val(substr(@kix,1,1)) >= 4) IF (len(@scriptname) <> 0) " ("+LCASE(@scriptname)+")" ENDIF ENDIF ? "-" IF ("$_debug_already_starting" <> "yes") ? "-curdir: "+LCASE(@curdir) ? "-scriptdir: "+LCASE(@scriptdir) IF (instr("-4.1x-","-"+substr(@kix,1,3)+"x-") <> 0) ? "-scriptname: "+LCASE(@scriptname) ENDIF ? "-startdir: "+LCASE(@startdir) ? "-" ? "-userid: "+LCASE(@userid)+"/"+LCASE(@wuserid) ? "-user priv: "+LCASE(@priv) IF (instr("-4.xx-","-"+substr(@kix,1,2)+"xx-") <> 0) ? "-version: inwin="+@inwin+"/dos="+@dos+"/productsuite="+@productsuite+"/producttype="+@producttype+"/csd="+LTRIM(RTRIM(@csd)) ELSE ? "-version: inwin="+@inwin+"/dos="+@dos ENDIF ? "-" IF (instr("-4.1x-","-"+substr(@kix,1,3)+"x-") <> 0) ? "-"+@cpu+" (memory "+MemorySize()+" MB)" ? "-" ENDIF ENDIF
$_debug_temp_name="" ; -format: yyyymmdd_hhmmss.sss_999 scriptname- IF (instr("-3.6x-","-"+substr(@kix,1,3)+"x-") <> 0) OR (Val(substr(@kix,1,1)) >= 4) IF (instr("-4.xx-","-"+substr(@kix,1,2)+"xx-") <> 0) $_debug_temp_name=@msecs SELECT CASE (len($_debug_temp_name) = 1) $_debug_temp_name="00"+$_debug_temp_name CASE (len($_debug_temp_name) = 2) $_debug_temp_name="0"+$_debug_temp_name ENDSELECT $_debug_temp_name="."+$_debug_temp_name IF Srnd(@msecs) ENDIF SLEEP 0.050 ELSE IF Srnd((-1)*32767/(substr(@time,7,2)+1)) ENDIF SLEEP 1 ENDIF $_debug_temp_name=substr(@date,1,4)+substr(@date,6,2)+substr(@date,9,2)+"_"+substr(@time,1,2)+substr(@time,4,2)+substr(@time,7,2)+$_debug_temp_name+"_"+Rnd() IF (len($_debug_temp_name) < 25) $_debug_temp_name=substr($_debug_temp_name+" ",1,25) ENDIF IF (instr("-4.1x-","-"+substr(@kix,1,3)+"x-") <> 0) IF (len(@scriptname) < 12) $_debug_temp_name=$_debug_temp_name+" "+substr(@scriptname+" ",1,12) ELSE $_debug_temp_name=$_debug_temp_name+" "+@scriptname ENDIF ENDIF ENDIF
IF ("$_debug_already_starting" <> "yes") ? "-debug file: "+$_debug_file ? "-debug name: "+LCASE($_debug_temp_name) ELSE IF (len($_debug_temp_name) <> 0) ? "-debug: "+LTRIM(RTRIM(LCASE($_debug_temp_name)))+" -> "+$_debug_file ELSE ? "-debug-file: "+$_debug_file ENDIF ENDIF
IF (instr("-3.6x-","-"+substr(@kix,1,3)+"x-") = 0) AND (Val(substr(@kix,1,1)) < 4) GOTO _debug_starting_point ENDIF DIM $_debug_name ; -create local variable- :_debug_starting_point $_debug_name=LCASE($_debug_temp_name) $_debug_already_starting="yes" ? "-" ?"----- start-"+@time+"-"+$_debug_name+"- @error @serror"?
?"- 1-"+@time+"-"+$_debug_name+"- @error @serror"? ? 'Login Script: v'+$scriptversion+' running under KiXtart v'+@kix ?"- 2-"+@time+"-"+$_debug_name+"- @error @serror"? ? 'Network Type: '+$networkconnection ?"- 3-"+@time+"-"+$_debug_name+"- @error @serror"? ? 'User ID: '+@userid ?"- 4-"+@time+"-"+$_debug_name+"- @error @serror"? ? 'Full Name: '+@fullname ?"- 5-"+@time+"-"+$_debug_name+"- @error @serror"? ? 'Privilege: '+@priv ?"- 6-"+@time+"-"+$_debug_name+"- @error @serror"? ? 'ComputerName: '+@wksta ?"- 7-"+@time+"-"+$_debug_name+"- @error @serror"? ? 'ComputerDomain: '+@domain ?"- 8-"+@time+"-"+$_debug_name+"- @error @serror"? ? 'LogonDomain: '+@ldomain ?"- 9-"+@time+"-"+$_debug_name+"- @error @serror"? ? 'Logon Server: '+@lserver ?"- 10-"+@time+"-"+$_debug_name+"- @error @serror"? ? 'OS Version: '+$os_short+' '+$os_role+' SP'+$os_sp ?"- 11-"+@time+"-"+$_debug_name+"- @error @serror"? ? 'Site: '+$site ?"- 12-"+@time+"-"+$_debug_name+"- @error @serror"?
?"------- end-"+@time+"-"+$_debug_name+"- @error @serror" ? "-" ? "-"+LCASE(@day)+" "+@date+" "+@time+"- kixtart "+@kix+"/3.20e script ending" IF (Val(substr(@kix,1,1)) >= 4) IF (len(@scriptname) <> 0) " ("+LCASE(@scriptname)+")" ENDIF ENDIF ? "-" IF RedirectOutput("CON") ENDIF COLOR C+/N ? ? "Informative KIX "+@kix+":"+" debug info see "+CHR(34)+$_debug_file+CHR(34) IF (Val(substr(@kix,1,1)) >= 4) IF (len(@scriptname) <> 0) " ("+LCASE(@scriptname)+")" ENDIF ENDIF IF RedirectOutput($_debug_file) ENDIF ;($begin) ; ; tue 03-dec-2002 17:40:39 (kix 4.10 vs 3.20e) ; ;Informative KIXSTRIP: no errors found (input=12 output=12 skip=0). ; ;Informative KIXSTRIP: no block_structures found. ;Informative KIXSTRIP: no UDF's found. ;Informative KIXSTRIP: no labels found. ;Summary KIXSTRIP: BREAK CALL DEBUG DISPLAY ENDFUNCTION EXECUTE EXIT FUNCTION GET GETS GOSUB GOTO OLExxx PLAY QUIT RETURN RUN SHELL SLEEP THEN USE ; ;($end)
Greetings. btw: it is only some additional information about how you can debug your script.
btw: with kixstrip ? you get a summary of possible options. The result will be something like this:
code:
Kixstrip 4.10 (vs 3.19e) (c) MCA - scripting@wanadoo.nl - 2000, 2001, 2002 ------------------------------------------------------------------------------ kixstrip [input] [output] /Block_Check or /BC /Combine /Debug /Headers /License /License=[var] /Performance /Print /Progress /Show_Errors or /SE /Show_Structure or /SS /Translate /TAB=[num] (def: 6) default: /Combine /Headers /License (other options are negative) other: - options with prefix "/No" will be ignored. f.e. /NoDebug /NoTab - /Block_Check /Tab=2 (auto set: /NoCombine /NoLicense /Print ) /Debug (auto set: /NoLicense /Print /Show_Errors ) - /Block_Check (reformat kixtart code inc. block structure ) /Combine (combine lines to one line ) /Debug (insert "line numbers" for each printed line ) /Headers (insert summary report as footer ) /Performance (insert "indicator" for each executed line) /Print (do not remove print statements ) /Progress (insert "indicator" for each printed line ) /Show_Errors (insert error messages in output file ) /Show_Structure (insert block structures in output file ) /Translate (convert keywords to upper/lower-case ) examples - kixstrip test.kix test.out /Block_Check /Debug - kixstrip test.kix test.out /Performance /Show_Structure
btw: Symbol on our homepage has been linked to related http://kixtart.org topic.
|
|
Top
|
|
|
|
Moderator: Jochen, Allen, Radimus, Glenn Barnas, ShaneEP, Ruud van Velsen, Arend_, Mart
|
0 registered
and 2924 anonymous users online.
|
|
|