[Cascavel-pm] Nomes longos no windows

Luis Campos de Carvalho monsieur_champs em yahoo.com.br
Sexta Abril 8 11:45:49 PDT 2005


Er Galvão Abbott - PM Porto Alegre wrote:
> Pois é, pessoal, olhem que estranho:
> 
> Atualizei minha instalação do ActivePerl aqui para a última versão:
> 
> This is perl, v5.8.6 built for MSWin32-x86-multi-thread
> (with 3 registered patches, see perl -V for more detail)
> 
> mas continuo com problemas. Estou fazendo uma chamada system que 
> funciona perfeitamente se eu colocar:
> 
> system('C:/arquiv~1/winrar/winrar.exe A -ibck -afzip -m5 
> C:/'.$compfile.' '.$dirs[$d].'/'.$files[$f].' > '.$logfile);
> 
> Mas não funciona se eu colocar:
> 
> system('C:/arquivos de programas/winrar/winrar.exe A -ibck -afzip -m5 
> C:/'.$compfile.' '.$dirs[$d].'/'.$files[$f].' > '.$logfile);
> 
> O erro é:
> 
> " 'C:/arquivos' não é reconhecido como um comando interno ou externo, um 
> programa operável ou um arquivo em lotes. "
> 
> Estou fazendo a chamada desse system ligada a um botão em uma janela Tk.
> 
> Alguma sugestão?

   Simples.
   Vai funcionar perfeitamente se você disser

   system( q{"C:/arquivos de programas/winrar/winrar.exe" A -ibck -afzip 
-m5 C:/}.$compfile.' '.$dirs[$d].'/'.$files[$f].' > '.$logfile);

   Repare que eu usei q{} para quotar a primeira string, e que eu quotei 
(DOS-like) o nome do programa. Este é o seu problema: você precisa se 
lembrar de que o system() chama o shell do DOS (command.exe) e que este 
"shell" não é lá muito inteligente... ;-)

   Se resolveu, avisa a gente.
   Putamplexos!
-- 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Luis Campos de Carvalho is BSc in Comp Science,
  PerlMonk [SiteDocClan], Sao Paulo PM Leader,
  Unix Sys Admin && Certified Oracle DBA
  http://br.geocities.com/monsieur_champs/
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=



Mais detalhes sobre a lista de discussão Cascavel-pm