Ir para conteúdo
Fórum Script Brasil
  • 0

Copiando Arquivos Via Shell_exec


Mário Miranda

Pergunta

Bom dia.

Estou com uma dúvida com essa ação.

Em um script o seguinte comando é rodado:

<?
$comando = "copy C:\guia.txt \\\\192.168.25.17\LPT1";
echo "$comando <br>";
$entra=shell_exec("$comando");

echo $entra;
?>

Só que o comando executado me retorna "0 arquivos copiados".

Porém se eu executar o mesmo comando em que eu dou um echo na tela, só que diretamente na máquina onde roda esse script, o comando funciona.

Se alguém puder me ajudar com isso, só falta isso pra que eu consiga finalizar um projeto.

Desde já agradeço a todos.

Editado por Mário Miranda
Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

cara, não é por nada, mas esse ' C:\guia.txt' tah estranho... você não deveria usar o caminho relativo de onde estah o scipt?... quero dizer, não teria que estar dentro de alguma pasta do apache onde estao hospedados os scripts php? ...

lá em c:\arquivos de programas\apache\etc...???

Link para o comentário
Compartilhar em outros sites

  • 0

Na verdade não, pois o shell_exec pede o caminho físico do arquivo, e este será acessado pelo servidor, não pelo navegador.

Mário Miranda, você está tendo problemas com outras operações shell_exec, ou só para copiar o arquivo?

Tente mudar o:

C:\guia.txt

por:

C:\\guia.txt

Link para o comentário
Compartilhar em outros sites

  • 0

Vamos rever o código então:

<?
$comando = "copy C:\\guia.txt \\\\192.168.25.17\\LPT1";
echo "$comando <br>";
$entra=shell_exec("$comando");

echo $entra;
?>

A barra invertida ( \ ) serve como caractere de escape, para você colocar caracteres que não seriam permitidos em strings.

Logo, para você utilizá-la, terá que duplicá-la! (Uma para dizer qe você quer colocar um dos caracteres, e a outra que é o caractere em sí)

E no seu script, entre o IP e o LPT1, também faltava essa barra a mais.

Link para o comentário
Compartilhar em outros sites

  • 0

Não deu também.

Veja só o que eu fiz.

Eu modifiquei o comando. Seguindo o que você me passou sobre as '\' e deu certo.

$comando = "copy C:\\GUIA.txt c:\\mario.txt";

Mas o anterior(o que tem o caminho da rede)...pelo script não faz.

Só que se eu executar direto no servidor, abrindo o CMD o que o navegador me retorna, ele executa.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...