Jump to content
Fórum Script Brasil
  • 0

Copiando Arquivos Via Shell_exec


Mário Miranda
 Share

Question

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.

Edited by Mário Miranda
Link to comment
Share on other sites

8 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      150.2k
    • Total Posts
      647.5k
×
×
  • Create New...