Quisiera saber cómo copiar un archivo de txt a otro directorio, pero resulta que este archivo cambia de nombre aleatoriamente
Les explicoTengo un archivo llamado
C:\Lista_001.txt
y lo quiero transferir al destino
G:\Llegada\Transferencia\Cabecera\Lista_001.txt
y utilizo este comando
Copy C:\Lista_001.txt G:\Llegada\Transferencia\Cabecera\Lista_001.txt
Pero resulta que cada 5 minutos me llega otro archivo llamado
Lista_002.txt
y quisiera q reemplazara al archivo lista Lista_001.txt
Lo más complicado esq el nombre de los archivos cambian, y no sé cómo enviarlos al directorio que deseo
¿O sea que siempre habrá solo un "Lista_001.txt" en "G:\Llegada\Transferencia\Cabecera"?
Se podría ir borrando el archivo anterior al que llegó para así evitar confusiones....
Por cierto, tu titulo para el mensaje no es el adecuado, hay que ser específicos con la duda.
Los datos que das no los tengo muy claros.........
¿Pero el nombre de los archivos siempre sería este?
Lista_001
Lista_002
Lista_003
Lista_004
Lista_005
?????
O solamente serían DOS listas?:
Lista_001
Lista_002
???
Y el archivo de número MAYOR siempre tendría que reemplazarse por el archivo "Lista_001"???
por ejemplo:
c:\Lista_001 > nada
c:\Lista_002 > nada
c:\Lista_003 > nada
c:\Lista_004 > reemplazar por G:\Llegada\Transferencia\Cabecera\Lista_001.txt
?
He echo este script basandome en que pueda haber más de dos listas y todo lo que he preguntado sea así.
Si solo está "Lista001" en C:\, la reemplaza por la de G:\, y la borra de C:\.
Si hay muchas listas en c:\, reemplaza la del número mayor en G:\, y borra todas las listas de C:\.
Espero que te sirva
Saludos.
@echo off
REM By EleKtrO H@ckeR
REM Visita: Foro.ElHacker.Net
:Comprobar
:~~~~~~~~~
If not exist "G:\Llegada\Transferencia\Cabecera" (Mkdir "G:\Llegada\Transferencia\Cabecera" >nul)
If not exist "C:\Lista*.txt" (
Echo.
Echo. No existe ninguna lista...
Echo.
Pause
exit
)
:Listar
:~~~~~~
Dir /B "C:\Lista*.txt">"%TEMP%\Listas.txt"
for /F "Tokens=*" %%a in ('Type "%TEMP%\Listas.txt" ^| find /c /V ""') DO (
Set lineas=%%a
)
:Reemplazar Lista_001
:~~~~~~~~~~~~~~~~~~~~
If %lineas% LEQ 1 (
Copy /Y "C:\Lista_001.txt" "G:\Llegada\Transferencia\Cabecera\Lista_001.txt" >nul
Echo.
Echo. "C:\Lista_001.txt" Es la nueva lista...
Echo.
Pause
Exit
)
:Reemplazar Última lista
:~~~~~~~~~~~~~~~~~~~~~~~
Set /A Lineas-=1
For /f "Skip=%lineas% Tokens=*" %%A in ('type "%TEMP%\Listas.txt"') do (
Set Lista=%%A
Copy /Y "C:\%%A" "G:\Llegada\Transferencia\Cabecera\Lista_001.txt" >nul
)
:Reciclar listas antiguas
:~~~~~~~~~~~~~~~~~~~~~~~~
Del /Q "C:\Lista*.txt";"%TEMP%\Listas.txt" >nul
:Salir
:~~~~~
Echo.
Echo. "C:\%Lista%" Es la nueva lista...
Echo.
Pause
Exit
Gracias EleKtro H@cker
tu Respuesta me sirvió de mucho :xD