Eek! No!

I'm going out on a limb here, but I gues you don't have much experience of KiXtart, eh?

Ok. I'll break the script down and explain it bit-by-bit.

code:
$sRoom=substr(@WKSTA,1,2)   ; Room Prefix


@WKSTA is a macro that contains your workstation name. Everything after the semi-colon ";" is a comment.
The substr function starts at character 1 and takes the next two characters, and assigns this to the variable $sRoom. If your workstation name is "S25" the $sRoom variable now contains "S2".

code:
$iPCNo=substr(@WKSTA,3,9)   ; Simple sequential PC number.


This line is very similar to the last. It takes up to 9 characters from @WKSTA starting at position 3 and assigns them to the variable $iPCNo. Using the same example, if your workstations is called "S25", $iPCNo now contains "5". We are not actually going to use it here.


code:
"This is PC number " $iPCNo " in room number " $sRoom ?


This line is purely debugging, to let you know what is going on. It will display the room number and PC number that we have just extracted from @WKSTA

code:
Select


The "Select" statement started the "Select/Case/EndSelect" construct. The "Select" construct is like a multi-line if, where only one of the conditional tests is true.

code:
Case $sRoom = "T8"


This is the first test in the "Select" construct, and it checks if the room number that we extracted, i.e. the first two digits of the workstation name is "T8". If it is, the following statements are executed.


code:
	Use lpt1: "\\curriculum\T8Colour"


This is the statement that is executed if $iRoomNo is "T8". You can have more than one statement - I've only included one to keep it short.


code:
Case $sRoom = "T9"
Use lpt1: "\\curriculum\PagePro4100"


I've left both parts of the "Case construct here. The "Use" will only be executed if $sRoom is "T9".

code:
Case 1
"No printer mapped - room not recognised" ?


The "Case 1" is a special case. It is always executed if none of the previous cases were true. This case is used as an exception or default behaviour. In this instance we simply output an error message.

code:
EndSelect


The "EndSelect" ends the "Select" construct.

To extend this for your other rooms you simply need to insert more "Case" and "Use" statements, so

code:
Case $sRoom = "S1"
Use LPT1: \\server\first-printer-for-s1
Use LPT2: \\server\second-printer-for-s1
Case $sRoom = "E4"
Use LPT1: \\server\first-printer-for-E4
Use LPT2: \\server\second-printer-for-E4
Use LPT3: \\server\third-printer-for-E4

And so-on.