es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La descarga del archivo de hoy desde el servidor FTP utilizando WinSCP desde el archivo por lotes falla con el mensaje “La máscara no es válida cerca de ‘=today'”.

Tengo un archivo por lotes que recibe un argumento y luego pasa ese argumento a un archivo de script de texto que invoca a WinSCP para descargar un archivo.

Mi objetivo es descargar el archivo de hoy.

Puedo descargar el archivo si en el archivo de script de texto no tengo >=today.

¿Qué necesito cambiar para descargar el archivo de hoy, si existe?

Archivo por lotes

set arg1=%1
set CurrentPath=C:\Temp\

rem unidad
c:

rem carpeta de WinSCP
cd C:\Program Files (x86)\WinSCP

rem Descargar archivo
winscp.exe /console /script=%CurrentPath%sftp.txt /parameter %arg1%

Archivo de script de texto

option batch abort
option confirm off 

# Conectar
open <.....> 

# Descargar archivo en 
get %1%>=today "C:\Temp\"

# Desconectar
close

El error que estoy obteniendo:

La máscara no es válida cerca de ‘=today’

Ver imagen del error aquí

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para descargar el archivo de hoy, es necesario modificar la máscara de archivo en el script de WinSCP para utilizar la sintaxis %TIMESTAMP%. Reemplace la línea get %1%>=today "C:\Temp\" con get %1%_%TIMESTAMP#yyyymmdd#%.txt "C:\Temp\". Esto creará una máscara de archivo con la fecha de hoy en el formato yyyymmdd (por ejemplo, 20220101), que coincidirá con el nombre del archivo que desea descargar.

    El archivo de texto modificado se vería así:

    option batch abort
    option confirm off
    
    # Conectar
    open <.....>
    
    # Descargar archivo en
    get %1%_%TIMESTAMP#yyyymmdd#%.txt "C:\Temp\"
    
    # Desconectar
    close
    

Comments are closed.