[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