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’
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íneaget %1%>=today "C:\Temp\"
conget %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í: