2009年2月22日星期日

[PerlChina] Re: perl编译成可执行文件后,不能正常映射

大哥,感觉你写的这个很有C的风格
 


 
On 2/22/09, abc_tang <tang_tq@yahoo.com> wrote:
程序功能:自动映射到不同机器硬盘,获取测试信息,打印到屏幕.有可能用不同机器测试同一个产品的现象发生.
主要程序如下:
while ($i<@data)           #@data 保存所有的测试机器的信息
{print ($i+1," A is tested at MC $data[$i]\n");
map_hd("$data[$i]","$mapdir");   #根据测试机器,映射对应的HDD 到$mapdir盘符
$mapdir++;
word_search ($Lot_No);     #查找相关测试数据

while ($data[$i+1] eq $data[$i] && $i lt @data)   #如果下次还是同一台机器测试,则不去映射
{print ((++$i)+1," A is still tested at MC $data[$i]: No new logs.
\n");}
$i++;
system ("net use * /delete /yes >nul 2>nul");  #删除所有映射
}

map_hd程序部分:
sub map_hd
{ my $s_i=my $s_j =$_[0];
my $s_mapdir = $_[1];
system ("net use * /delete /yes >nul 2>nul");          #删除所有映射
  print ("map to $s_mapdir:\n");
  sleep 2;
  $s_i="\\"."\\cc01acp".$s_i."sc01\\c\$";   #根据测试机器生成映射目的
  $s_j="hcr\\uc01acp".$s_j."sc01";          #生成用户名
  system ("net use $s_mapdir: $s_i ina\@123 /user:$s_j ");#映射
  chdir ("$s_mapdir:\\ca\\T_4.3.2.2\\logs") or die ("$!");} #改变当前目录
line120

问题是用perl 源文件执行时,没有问题.
但是用perlapp 生成可执行文件后, 如果出现一个产品前后在两台机器上测试的情况, 程序在第二次取数据时报错 :No such file
or directory 在line 120上面.经过检查,发现第二次没有映射成功.
请帮忙分析一下,谢谢


--
            Yours Sincerely
                    Zeng Hong
--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

没有评论: