[Cascavel-pm] Nomes longos no windows

Alceu R. de Freitas Jr. glasswalk3r em yahoo.com.br
Sexta Abril 8 10:37:57 PDT 2005


Oi,

O Flávio é imbatível em velocidade de resposta, mas
vou aproveitar o gancho e dar meu pitaco... :-)

--- fglock em pucrs.br wrote:
> 
> > 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 que vc está obtendo é do shell do Windows.
Seria melhor você executar o comando sem chamar o
shell... (eu explico mais abaixo)
 
> Precisa usar aspas, para o "cmd.exe" entender que o
> comando não termina no espaço:
> 
> system('"C:/arquivos de programas/winrar/winrar.exe"
> A -ibck ...

Prefira usar aspas simples ao invés de duplas, se você
puder. Toda vez que vc usa aspas duplas, o Perl vai
tentar interpolar o valor de uma possível variável ali
dentro.

Mais um detalhe adicional: use o separador de
diretórios normal do DOS ao invés do UNIX: "\" (contra
barra). Isso evita dores de cabeça (e talvez tenha
sido esse o erro reportado).

Se vc usar aspas duplas, terá que colocar um "escape"
assim:

\\

Com aspas simples pode usar uma contrabarra só.
 
> Outra opção (melhor) é usar uma lista:
> 
> system('C:/arquivos de programas/winrar/winrar.exe',
>   'A', '-ibck' ...
> 

A lista é opção ideal porque o Perl não usa o shell do
SO para executar o comando. Isso evita problemas de
segurança também. (vide perldoc perlsec)

[]'s


Alceu Rodrigues de Freitas Junior
--------------------------------------
glasswalk3r em yahoo.com.br
http://www.imortais.cjb.net
-----------------------------------------------------------------------
A well-used door needs no oil on its hinges.
A swift-flowing stream does not grow stagnant.
Neither sound nor thoughts can travel through a vacuum.
Software rots if not used.
These are great mysteries -- The Tao Of Programming, 5.1


	
	
		
Yahoo! Acesso Grátis - Internet rápida e grátis. 
Instale o discador agora! http://br.acesso.yahoo.com/


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