Found this script over at www.enemy-territory.com. Been using it for a couple of days and found it to be spot on.
//Class select-----------------------------------------------------------------------------------------------------------------------------
//Script by Bane (jacob@tomaatnet.nl)
//http://www.enemy-territory.com
//
//special thanks to Dr_Fragenstein, who wrote the basics of this script.
// Allied Classes
set b_soldier1 “team b 0 5; set soldier vstr b_soldier2; echo ^4<<^7respawn as a soldier w/ Panzerfaust^4>>”
set b_soldier2 “team b 0 6; set soldier vstr b_soldier3; echo ^4<<^7respawn as a soldier w/ Flamethrower^4>>”
set b_soldier3 “team b 0 31; set soldier vstr b_soldier4; echo ^4<<^7respawn as a soldier w/ Mobile MG42^4>>”
set b_soldier4 “team b 0 35; set soldier vstr b_soldier1; echo ^4<<^7respawn as a soldier w/ Motar^4>>”
set b_medic “team b 1; echo ^4<<^7respawn as a Medic w/ Thompson^4>>”
set b_engr1 “team b 2; set engr vstr b_engr2; echo ^4<<^7respawn as an engeneer w/ Thompson^4>>”
set b_engr2 “team b 2 24; set engr vstr b_engr1; echo ^4<<^7respawn as an engeneer w/ Grenade rifle^4>>”
set b_fieldops “team b 3; echo ^4<<^7respawn as a Field-ops w/ thompson^4>>”
set b_covertops1 “team b 4; set covertops vstr b_covertops2; echo ^4<<^7respawn as a Covert-ops w/ Sten^4>>”
set b_covertops2 “team b 4 32; set covertops vstr b_covertops3; echo ^4<<^7respawn as a Covert-ops w/ Sniper rifle^4>>”
set b_covertops3 “team b 4 33; set covertops vstr b_covertops1; echo ^4<<^7respawn as a Covert-ops w/ Paratrooper rifle^4>>”
// Axis Classes
set r_soldier1 “team r 0 5; set soldier vstr r_soldier2; echo ^4<<^7respawn as a Soldier w/ Panzerfaust^4>>”
set r_soldier2 “team r 0 6; set soldier vstr r_soldier3; echo ^4<<^7respawn as a Soldier w/ Flamethrower^4>>”
set r_soldier3 “team r 0 31; set soldier vstr r_soldier4; echo ^4<<^7respawn as a Soldier w/ Mobile MG42^4>>”
set r_soldier4 “team r 0 35; set soldier vstr r_soldier1; echo ^4<<^7respawn as a Soldier w/ Motar^4>>”
set r_medic “team r 1; play sound/chat/axis/82a; echo ^4<<^7respawn as a Medic w/ MP40^4>>”
set r_engr1 “team r 2 23; set engr vstr r_engr2; echo ^4<<^7respawn as an Engeneer w/ Grenade rifle^4>>”
set r_engr2 “team r 2; set engr vstr r_engr1; echo ^4<<^7respawn as an Engeneer w/ MP40^4>>”
set r_fieldops “team r 3; echo ^4<<^7respawn as a Field-Ops w/ MP40^4>>”
set r_covertops1 “team r 4; set covertops vstr r_covertops2; echo ^4<<^7respawn as a Covert-ops w/ Sten^4>>”
set r_covertops2 “team r 4 32; set covertops vstr r_covertops3; echo ^4<<^7respawn as a Covert-ops w/ Sniper rifle^4>>”
set r_covertops3 “team r 4 33; set covertops vstr r_covertops1; echo ^4<<^7respawn as a Covert-ops w/ Paratrooper rifle^4>>”
// The selection
set my_team_allied “echo Team set ^4Allies; set soldier vstr b_soldier1; set medic vstr b_medic; set engr vstr b_engr1; set fieldops vstr b_fieldops; set covertops vstr b_covertops1; set team_swap vstr my_team_axis”
set my_team_axis “echo Team set ^2Axis; set soldier vstr r_soldier1; set medic vstr r_medic; set engr vstr r_engr1; set fieldops vstr r_fieldops; set covertops vstr r_covertops1; set team_swap vstr my_team_allied”
set team_swap “vstr my_team_allied”
// and the binds
bind F3 “vstr team_swap”
bind F8 “vstr soldier”
bind F5 “vstr covertops”
bind F4 “vstr medic”
bind F6 “vstr engr”
bind F7 “vstr fieldops”