2009年4月30日星期四

[PerlChina] Re: 生产exe文件后,第二次调用子程序时其中的chdir不起作用。请大家来看看

dos 怎么 cd h:\ 呢?应该是 h:\ 才会转过去。

2009/4/30 Anthony WU <anthonywuy2k@gmail.com>
你好,你具體的情況是map driver 的時候,系統在調用
system ("net use H: \"\\\\cfs\\test\\$_[0]\" >nul");
時未"即時"把 network map 上而導致
chdir ('H:');
轉目錄失敗,嘗試在chdir之前加上延時再測試吧……

你可以在cmd下使用
cd c:\
net use H: /delete /yes
net use H: "\\cfs\test\TUFF"
cd h:\
dir
cd c:\
net use H: /delete /yes
net use H: "\\cfs\test\TUFF"
cd h:\
dir
看看…測試結果也是一樣不能轉到 H: 的


-------- Original Message --------
Subject: [PerlChina] 生产exe文件后,第二次调用子程序时其中的chdir不起作
用。请大家来看看
From: abc_tang <tang_tq@yahoo.com>
To: PerlChina Mongers 讨论组 <perlchina@googlegroups.com>
Date: 28/4/2009 21:39
> 程序有使用了两次子程序map_hd来建立映射盘。程序经过perlapp 生产exe后,第一次调用map_hd("TUFF") 没有问题,可以建
> 立映射,并进入指定目录; 第二次 map_hd("\\$recp_name\\$location")只能建立映射,但是一直不能chdir H,
> 进入不到指定目录。请问这段程序有什么问题啊?
>
> 在用perl Name 来执行pl时,却是什么问题都没有。
> 难道是一个bug么?
>
> (最后采用了个笨方法来绕过问题:control+C,control+V了map_hd子程序,改了个名字,给第二次调用使用)
>
> map_hd("TUFF");
> chdir ("\\$location") or die ("$!");
> @File = glob("*");
>
> for $file_name(@File) #get data
> {
>        get_match($file_name); #get parameter from file
> }
>
> for $file_name (@File)
> {
>        for my $recp_name (keys %{$H_gm{$file_name}}) {
>          if ($H_gm{$file_name}{$recp_name} eq "MC") #get MC name
>          {  print ("$recp_name\n");
>             map_hd("\\$recp_name\\$location");
>             system ("dir");
>          }
>       }
>      }
>
> sub map_hd                                         #map HDD;
> {
>   chdir ("D:"); #change back
>   system ("net use H: /delete /yes >nul");
>   system ("net use H: \"\\\\cfs\\test\\$_[0]\" >nul");
>   chdir ('H:');
> }
> >
>

--
Best Regards,
       Anthony WU

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

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

没有评论: