perl脚本如下:
# 通过devices得到现在的sdk
@trueDevices = `devices`;
foreach ( @trueDevices ) {
if ( / default / ) {
s / - default // ;
}
chomp ;
}
# 从配置文件读入关键字
$configFileName = ' d:perlprojectconfig.txt ' ;
open CONFIGFILE , " <$configFileName " or die ' configfile err! ' ;
@config =< CONFIGFILE > ;
chomp @config ;
close CONFIGFILE;
# 在数组中,找到注释的行和set=的行
for ( $i = 0 ; $i < @config ; $i ++ ) {
$eachConfig = $config [ $i ];
if ( $eachConfig =~/ # .*/) {
push @delIndexArray , $i ;
}
else {
if ( $eachConfig =~/ set =/ ) {
$eachConfig =~ s / set =// ;
push @delIndexArray , $i ;
$setConfig = $eachConfig ;
}
}
}
# 去掉注释行和set=的行
for ( $i = @delIndexArray - 1 ; $i >= 0 ; $i -- ) {
splice @config , $delIndexArray [ $i ] , 1 ;
}
for ( $i = 0 ; $i < @config ; $i ++ ) {
if ( $config [ $i ] =~/ $setConfig / ) {
printf " $i: $config[$i] " ;
$toSetDeviceKeyword = $config [ $i ];
$toSetDeviceKeyword =~ s /.*=// ; # 去掉=之前的所有的,留下的关键字
}
}
printf " $toSetDeviceKeyword=$toSetDeviceKeyword " ;
for ( $i = 0 ; $i < @trueDevices ; $i ++ ) {
if ( $trueDevices [ $i ] =~/ $toSetDeviceKeyword / ) {
& SetDevice( $trueDevices [ $i ]);
}
}
sub SetDevice {
# 第一个参数是要设置的sdk标识
$device = $_ [ 0 ];
printf " device:$device " ;
if ( $device =~/ w / ) {
# device非空,进行处理
#如果有 - default,则去掉 - default
$device =~ s / - default // ;
system " devices -setdefault @$device " ;
return 0 ;
}
else {
printf " device里什么都没有 " ;
return - 1 ;
}
}
# 通过devices得到现在的sdk
@trueDevices = `devices`;
foreach ( @trueDevices ) {
if ( / default / ) {
s / - default // ;
}
chomp ;
}
# 从配置文件读入关键字
$configFileName = ' d:perlprojectconfig.txt ' ;
open CONFIGFILE , " <$configFileName " or die ' configfile err! ' ;
@config =< CONFIGFILE > ;
chomp @config ;
close CONFIGFILE;
# 在数组中,找到注释的行和set=的行
for ( $i = 0 ; $i < @config ; $i ++ ) {
$eachConfig = $config [ $i ];
if ( $eachConfig =~/ # .*/) {
push @delIndexArray , $i ;
}
else {
if ( $eachConfig =~/ set =/ ) {
$eachConfig =~ s / set =// ;
push @delIndexArray , $i ;
$setConfig = $eachConfig ;
}
}
}
# 去掉注释行和set=的行
for ( $i = @delIndexArray - 1 ; $i >= 0 ; $i -- ) {
splice @config , $delIndexArray [ $i ] , 1 ;
}
for ( $i = 0 ; $i < @config ; $i ++ ) {
if ( $config [ $i ] =~/ $setConfig / ) {
printf " $i: $config[$i] " ;
$toSetDeviceKeyword = $config [ $i ];
$toSetDeviceKeyword =~ s /.*=// ; # 去掉=之前的所有的,留下的关键字
}
}
printf " $toSetDeviceKeyword=$toSetDeviceKeyword " ;
for ( $i = 0 ; $i < @trueDevices ; $i ++ ) {
if ( $trueDevices [ $i ] =~/ $toSetDeviceKeyword / ) {
& SetDevice( $trueDevices [ $i ]);
}
}
sub SetDevice {
# 第一个参数是要设置的sdk标识
$device = $_ [ 0 ];
printf " device:$device " ;
if ( $device =~/ w / ) {
# device非空,进行处理
#如果有 - default,则去掉 - default
$device =~ s / - default // ;
system " devices -setdefault @$device " ;
return 0 ;
}
else {
printf " device里什么都没有 " ;
return - 1 ;
}
}
配置文件config.txt如下:
#abc
set=2.2a
2.1a=2.1akey
2.2a=2nd_FP2_SC
2.3a=2.3akey
3.0a=3rd_MR
3.1a=3.1akey