Como copiar novos arquivos em uma pasta para um local de FTP usando um arquivo em lotes?

3

Existem muitas perguntas sobre o SuperUser sobre o upload de um arquivo único para um servidor FTP, mas não muitas sobre o upload de pastas inteiras, então duvido que essa seja uma pergunta duplicada.

Eu não uso um cliente FTP - eu sempre acesso meu servidor FTP como qualquer pasta usando o Windows Explorer. Depois de autenticar, posso navegar pelo conteúdo do meu site como um diretório normal.

Normalmente, quando eu quero editar algo no meu site, eu faço o login no diretório FTP, copio o arquivo que eu quero editar para minha pasta Downloads (pode ser qualquer pasta local, eu acho isso fácil), edite o que eu preciso e, em seguida, mova / copie de volta. Eu só tenho um site pequeno e codifiquei tudo do zero para não precisar me preocupar com nada do lado do servidor.

No passado, tentei usar um arquivo em lote para fazer login no servidor FTP automaticamente e abrir public-html em uma janela do Explorer, e não consegui fazer isso funcionar. Eu estou querendo saber se é possível em um arquivo de lote independente para copiar todos os arquivos novos / alterados de uma pasta específica em uma unidade de rede mapeada para a pasta apropriada no servidor FTP. Estou assumindo que posso usar ftp://server.com/public_html/folder/folder como caminho e o Windows usará o Explorer para isso. Se ele também pudesse fazer login no servidor, isso seria útil, mas eu posso fazer o login manualmente.

Caso contrário, é muito complicado copiar manualmente cada arquivo que eu mudei da minha área de teste para o servidor FTP.

Um script PowerShell ou VBS também serviria para mim; Eu só preciso ser capaz de desenvolver um arquivo independente que não tenha nenhuma dependência (ou seja, eu não quero instalar um cliente ou qualquer pacote de software).

Eu posso facilmente escrever um script para copiar arquivos de uma unidade mapeada para uma pasta em um disco local, e não sei porque o FTP deve ser diferente.

    
por InterLinked 05.06.2017 / 15:13

2 respostas

7

Todas as operações que você mencionou em sua postagem podem ser automatizadas com um script WinSCP. Você já tentou WinSCP? É super-poderoso e gratuito com toneladas de suporte. Abaixo, há um script de exemplo sobre suas ações:

# Connect
open ftp://user:[email protected]/ 
# Change remote directory
cd /home/user
# Force binary mode transfer
option transfer binary
# Download file to the local directory d:\
get examplefile.txt d:\
# This will Upload whole folder files and subfolders to current working directory
put d:\
# Disconnect
close
# Exit WinSCP
exit

Então você acabou de invocar o script de um arquivo de lote.

    
por 05.06.2017 / 16:23
2

Da sua pergunta, suponho que você esteja perguntando o seguinte:

copy all of the new/changed files from a specific folder in a mapped network drive to the appropriate folder in the FTP server.

Etapa 1.

Use o uso da rede para montar um local de rede como um nome de unidade (ou use o assistente do Windows para mapear uma unidade de rede)

net use Z: \MyServer\MyShare\

Onde Z: é a letra da unidade que você deseja usar

Etapa 2.

Mapeie outra unidade com uma letra diferente somente desta vez, torne-a um servidor FTP (veja a captura de tela)

Você vai acabar com duas unidades que você pode copiar arquivos com o Windows Explorer, mas também a partir do prompt de comando da seguinte forma:

copy Z:\myFiles Y:\public_html\folder\folder
    
por 05.06.2017 / 19:31