Ms-Dos - Usar AND en un FOR

 
Vista:
Imágen de perfil de Lucho

Usar AND en un FOR

Publicado por Lucho (17 intervenciones) el 04/11/2021 19:22:01
Hola , no se si es posible, pero quisiera definir 2 nombres de archivo en la misma linea.
Con un .bat estoy filtrando los archivos *.txt de varias carpetas para enviarlos por SFtp.
Tomo las rutas de las carpetas de origen de rutas.txt.
En esas carpetas hay muchos txt, y solo necesito enviar los que se llaman file001.txt y file005.txt , como seria la sintaxis como para aprovechar el bucle y mandar solo esos 2 archivos ?

Ejemplo enviando 1 archivo

for /f "delims=; tokens=1,2,3,4" %%A in (
rutas.txt
) do send-winscp.cmd %%B*file001.txt %%D*.txt
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 1.419
Oro
Ha mantenido su posición en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

Usar AND en un FOR

Publicado por Antoni Masana (811 intervenciones) el 05/11/2021 14:57:46
Prueba esto:

1
for /f "delims=; tokens=1,2,3,4" %%A in (file001.txt file005.txt) do send-winscp.cmd %%B*file001.txt %%D*.txt

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Luis

Usar AND en un FOR

Publicado por Luis (17 intervenciones) el 05/11/2021 18:39:58
Hola, muchas gracias , no entiendo la parte final

for /f "delims=; tokens=1,2,3,4" %%A in (file001.txt file005.txt) do send-winscp.cmd %%B*file001.txt %%D*.txt


En esta parte :
%%B*file001.txt %%D*.txt

Se supone que deba hacer :
%%B*file001.txt %%B*file005.txt%%D*.txt

o debería solo :
%%B*file001.txt %%B*file%%D*.txt

Me explicas ? Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 1.419
Oro
Ha mantenido su posición en Ms-Dos (en relación al último mes)
Gráfica de Ms-Dos

Usar AND en un FOR

Publicado por Antoni Masana (811 intervenciones) el 05/11/2021 22:11:17
Y me lo preguntas a mi que no se que se supone que debe hacer esto:

1
2
3
for /f "delims=; tokens=1,2,3,4" %%A in (
rutas.txt
) do send-winscp.cmd %%B*file001.txt %%D*.txt

Que por cierto es lo mismo que esto:

1
for /f "delims=; tokens=1,2,3,4" %%A in ( rutas.txt ) do send-winscp.cmd %%B*file001.txt %%D*.txt

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Lucho

Usar AND en un FOR

Publicado por Lucho (17 intervenciones) el 05/11/2021 23:11:02
Mil disculpas, pensé se entendía ... tienes toda la razón

En rutas.txt tengo las rutas a las carpetas, separadas por ; :
LOCAL;..\LOCAL\BSAS\;..\Back\;..\Up\BSAS\ENT\
EXT1;..\LOCAL\NEUQ\;..\Back\;..\Up\NEUQ\ENT\
EXT2;..\LOCAL\SGO\;..\Back\;..\Up\SGO\ENT\
EXT3;..\LOCAL\LUJ\;..\Back\;..\Up\LUJ\ENT\

Son 3 locaciones distintas BSAS NEUQ SGO.
Esas carpetas (Origen) hay 1 por cada locación y estan en un servidor , ahí se graban unos archivos txt de las operaciones diarias .
Yo tomo esos archivos y mediante 4 bucles similares hago 3 procesos distintos :

1) A modo de backup copio *.txt con el xcopy desde Origen(BSAS) .. hasta Destino(Back)
2) Envío mediante el WinSCP a un SFTP "solo 2 archivos" de entre varios, x ejemplo se llaman C001.txt y D001.txt
3) Elimino con del*.txt los archivos correspondientes a cada locacion

Tanto en la copia a backup como en el borrado , me alcanza con el flitro *.txt
En el envío a SFTP no, porque puede haber 20 archivos , y solo necesito enviar 2 que tambien son txt pero son la cebecera y detalle de las operaciones ( los demas no se envían)

En resumen, recorro cada carpeta de origen , copio todos los .txt a su \Back\ correspondientes y despues envio solo 2 archivos de cada locacion :

for /f "delims=; tokens=1,2,3,4" %%A in ( rutas.txt ) do send-winscp.cmd %%B*file001.txt %%D*.txt


Por lo que yo puedo entender en el código, y seguramente estoy errado ... la linea

do send-winscp.cmd %%B*file001.txt %%D*.txt

Recorre cada carpeta Origen (%%B) y envia al SFTP solo el archivo file001.txt , la idea era en la misma sesión de SFTP enviar los 2 archivos juntos a ..\Up\BSAS\ENT\ y las otras locaciones
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Lucho

Usar AND en un FOR

Publicado por Lucho (17 intervenciones) el 05/11/2021 23:13:54
Aclaro algo que puse mal.
Son 4 Locaciones distintas y hago 3 procesos, copia a backup , envio SFTP y borrado *.txt de origen
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar