Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Libra_18 en 27 Noviembre 2011, 06:18 am



Título: Ayuda ...
Publicado por: Libra_18 en 27 Noviembre 2011, 06:18 am
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 




Título: Re: Ayuda ...
Publicado por: leogtz en 27 Noviembre 2011, 07:30 am
¿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.


Título: Re: Ayuda ...
Publicado por: Eleкtro en 27 Noviembre 2011, 08:08 am
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.



Código
  1. @echo off
  2.  
  3.  
  4. REM By EleKtrO H@ckeR
  5. REM Visita: Foro.ElHacker.Net
  6.  
  7.  
  8. :Comprobar
  9. :~~~~~~~~~
  10. If not exist "G:\Llegada\Transferencia\Cabecera" (Mkdir "G:\Llegada\Transferencia\Cabecera" >nul)
  11.  
  12. If not exist "C:\Lista*.txt" (
  13. Echo. No existe ninguna lista...
  14. )
  15.  
  16.  
  17.  
  18. :Listar
  19. :~~~~~~
  20. Dir /B "C:\Lista*.txt">"%TEMP%\Listas.txt"
  21.  
  22. for /F "Tokens=*" %%a in ('Type "%TEMP%\Listas.txt" ^| find /c /V ""') DO (
  23. Set lineas=%%a
  24. )
  25.  
  26.  
  27.  
  28. :Reemplazar Lista_001
  29. :~~~~~~~~~~~~~~~~~~~~
  30. If %lineas% LEQ 1 (
  31. Copy /Y "C:\Lista_001.txt" "G:\Llegada\Transferencia\Cabecera\Lista_001.txt" >nul
  32. Echo. "C:\Lista_001.txt" Es la nueva lista...
  33. )
  34.  
  35.  
  36.  
  37. :Reemplazar Última lista
  38. :~~~~~~~~~~~~~~~~~~~~~~~
  39. Set /A Lineas-=1
  40. For /f "Skip=%lineas% Tokens=*" %%A in ('type "%TEMP%\Listas.txt"') do (
  41. Set Lista=%%A
  42. Copy /Y "C:\%%A" "G:\Llegada\Transferencia\Cabecera\Lista_001.txt" >nul
  43. )
  44.  
  45.  
  46.  
  47. :Reciclar listas antiguas
  48. :~~~~~~~~~~~~~~~~~~~~~~~~
  49. Del /Q "C:\Lista*.txt";"%TEMP%\Listas.txt" >nul
  50.  
  51.  
  52.  
  53. :Salir
  54. :~~~~~
  55. Echo. "C:\%Lista%" Es la nueva lista...



Título: Re: Ayuda ...
Publicado por: Libra_18 en 28 Noviembre 2011, 07:30 am
Gracias EleKtro H@cker
tu Respuesta me sirvió de mucho  :xD