Variável no script WinSCP

3

Eu sou solicitado a automatizar alguns processos de download de SFTP via WinSCP. Eu não estou familiarizado com o script WinSCP.

ftprun.cmd:

C:\Program Files\WinSCP\winscp.com" /script=D:\testsftp\ftpscript.txt

ftpscript.txt:

option batch continue
option confirm off
open [email protected]
set mydate=%date:~6,4%%date:~3,2%%date:~0,2%
cd /cygdrive/h/ftproot/PROD/MRMRSA/eMotor/
lcd D:\testsftp
mkdir %mydate%
exit

Quando executo o script, o sistema mostra

Unknown command 'set'.

pesquisamos alto e baixo para resolver isso, mas sem sorte.

    
por Bean Tee 12.06.2014 / 05:54

1 resposta

4

Na verdade, não há comando set no WinSCP.

O set command , com a sintaxe que você está usando , é um comando do Windows.

Como tal, você precisa executá-lo a partir de um arquivo de lote do Windows, como o seu ftprun.cmd .

O WinSCP pode resolver variáveis de ambiente do Windows em seu script:

Portanto, tudo o que você precisa fazer é mover a linha set para o ftprun.cmd , antes da chamada para winscp.com :

set mydate=%date:~6,4%%date:~3,2%%date:~0,2%
"C:\Program Files\WinSCP\winscp.com" /script=D:\testsftp\ftpscript.txt

De qualquer forma, observe que sua date magic é específica de localidade, portanto, certifique-se de que todas as máquinas em que você usa o script usem o mesmo local (idioma) da máquina que você desenvolve / testa. Por exemplo, com minha localidade tcheca, o mydate resolve o absurdo 06.12čt , porque o date é čt 12. 06. 2014 .

Melhor solução é usar a % sintaxe %TIMESTAMP% do WinSCP:

mkdir %TIMESTAMP#yyyymmdd%
    
por 12.06.2014 / 08:22