Select source mesh followed by selection of any number of target meshes with same topology and run:
CODE
global proc polyTransferShadingGroups( string $objects[] ){
string $src = $objects [ 0 ];
string $targ;
int $targcount = size( $objects );
int $i;
for( $i = 1; $i < $targcount; ++$i ){
string $targ = $objects[ $i ];
string $shGroups[] = listSets -ets -type 1 -o $src;
string $sg;
for( $sg in $shGroups ){
string $sgMembers[] = sets -q $sg;
string $f;
for( $f in $sgMembers ){
string $obj = match( ".*\.", $f );
$obj = substitute( "\.", $obj, "" );
if( $obj == $src ){
string $index = match( "\..*", $f );
sets -e -fe $sg ( $targ + $index );
}
}
}
}
}
polyTransferShadingGroups( ls -sl );