Antes de mais nada, vamos diagnosticar por que isso não funciona.
- O arquivo em lote é iniciado. Provavelmente em C: \ users \ vincent \
- O diretório de trabalho é alterado pelo primeiro comando. este comando termina e o processamento passa para o próximo comando.
-
psftp [email protected] -pw password -P port
é iniciado. Está em execução e aguardando a entrada do usuário. - O próximo comando não é alcançado até que o anterior termine. Se você é um leitor rápido, pode digitar
quit
e ver a mensagem de erro queput is not a recognised internal or external command
antes do fechamento da janela.
Ok, agora descobrimos que estamos emitindo um terceiro comando em vez de inserir o psftp. A questão agora é como você pode emitir ordens para o programa psftp em execução.
Capítulo 6 , seção 6.1.5 de psftp, significando o -b
opção. Citando isso:
Na operação normal, o PSFTP é um programa interativo que exibe uma linha de comando e aceita comandos do teclado. Se você precisar realizar tarefas automatizadas com PSFTP, provavelmente preferiria especificar um conjunto de comandos com antecedência e executá-los automaticamente. A opção -b permite que você faça isso. Você o usa com um nome de arquivo contendo comandos em lote. Por exemplo, você pode criar um arquivo chamado myscript.scr contendo linhas como esta:
Em seguida, lista um exemplo. No seu caso, o arquivo provavelmente deve conter isto:
put file.csv /remote/folder/file.csv
quit