Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: jpg1005 en 22 Junio 2012, 23:58 pm



Título: programacion Batch
Publicado por: jpg1005 en 22 Junio 2012, 23:58 pm
Cordial saludo

Amigos soy nuevo en esto, tengo una serie de dudas que comentare para ver si me pueden ayudar.

Tengo un archivo ubicado en un equipo de mi red ( Esta es la carpeta \\miequipo\operador\Archivo.xls) necesito copiar este archivo a los demas equipos en esta carpeta \\otroequipo1\utilidades\. como son muchos equipos a los cuales quiero pasar la informacio tengo pensado utilizar un for que me lea todos los equipos destinos en un archivo llamado Zona1.txt (Aqui estan todos los equipos a los cuales voy a pasar el archivo.xls.

Ahh quiero intregarlo con el fastcopy..

Tengo algo como esto pero aun no me funciona...
Código
  1. @echo off
  2. :Menu
  3. cls
  4. color 3f
  5. echo       ========================================================
  6. echo                 P E R F I L   D E   A N A L I S T A S
  7. echo       ========================================================
  8. echo       Escoja la Opcion:
  9. echo             1.  Pasar Archivos En La Zona 1
  10. echo             2.  Pasar Archivos En La Zona 2
  11. Set /p var= _:
  12. if %var%==1 goto :Zona1
  13. if %var%==2 goto :Zona2
  14. if %var%==0 goto exit
  15. if %var% GTR 2 echo Error
  16. goto :Menu
  17. :Zona1
  18. cls
  19. echo       ======================================================== >Log.txt
  20. echo               PROCESO INICIADO  A LAS %time%                   >>Log.txt
  21. echo       ======================================================== >>Log.txt
  22. echo.                                                                                                                                     >>Log.txt
  23. echo.                                                                                                                                     >>Log.txt
  24. setlocal EnableDelayedExpansion
  25. set /p Normbre=Digite El Nombre Del Archivo:
  26. for /f "tokens=1,%Nombre% delims=," %%j in (Zona1.txt) do (
  27.    echo.                                                                                                                                    >>Log.txt
  28.    echo.                                                                                                                                    >>Log.txt
  29.    echo       ======================================================== >>Log.txt
  30.    echo            Pasando Archivos al servidor %%k                    >>Log.txt
  31.    echo       ======================================================== >>Log.txt
  32.    For %%i IN (*total.*) do (
  33.        echo copiando el archivo "%%i" a la carpeta %%k                 >>Log.txt
  34.        fastcopy.exe /cmd=force_copy /logfile=Log.txt /no_confirm_stop  /force_close "%%i"
  35.  
  36. /to=%%k
  37.    )
  38.  
  39. FINDSTR /V "FastCopy * <Source> * <DestDir> * <Command> * TotalRead * TotalWrite *
  40.  
  41. TransRate * FileRate " Log.txt  >log2.txt
  42. Pause>Nul
  43. goto :Menu

Muchas gracias por su ayuda

JPG1005


Título: Re: programacion Batch
Publicado por: Eleкtro en 23 Junio 2012, 04:08 am
Hola.

(Antes de nada, Debo decirte que hay que usar el botón "insertar código" si sigues posteando en esta sección...)

Veo varios errores a simple vista:


Citar
Código
  1. /to=%%k
Se te ha colado, Esa linea dará error ya que no es ningún comando.


Citar
Código
  1. FINDSTR /V "FastCopy * <Source> * <DestDir> * <Command> * TotalRead * TotalWrite *
  2.  
  3. TransRate * FileRate " Log.txt  >log2.txt
Lo mismo de antes... No se si son errores que has tenido al copiar el código aquí, Pero si en el archivo Bat lo tienes así, debes juntar las lineas...


Estás usando una herramienta de terceros (fastcopy) así que proporcionarte la ayuda es complicado ya que no creo que ninguno de los que leamos tú problema dispongamos de esa herramienta. Puedes copiar archivos entre PC's conectados usando el comando XCopy (Igual de efectivo): http://ss64.com/nt/xcopy.html


No especificas nada acerca del error y eso hace aún más complicado proporcionarte ayuda.
Si no sabes nada respecto al error, Ejecuta el bat directamente desde la consola, Y cuando de error te lo especificará (sin muchos detalles, pero con eso se averigua lo que te está dando error...).

EDITO:

No es necesario habilitar la expansión ya que no la necesitas y no la usas, Borra esta linea:
Citar
Código
  1. setlocal EnableDelayedExpansion


Saludos


Título: Re: programacion Batch
Publicado por: jpg1005 en 1 Julio 2012, 12:08 pm
Cordial saludo

Muchas gracias por los comentarios, modifique el batch quitandole la parte del fastcopy y solo deje ls lineas de copia del archivo..  Me gustaria intregar todas las lineas en un for  ya que lo unico que cambia es el nombre del equipo donde voy a copiar el archivo lo demas es repetitivo..

Seria algo asi como esto:

copy \\equipo1\mibatch\Archivo.txt \\otroequipo1\utilidades
copy \\equipo1\mibatch\Archivo.txt \\otroequipo2\utilidades
copy \\equipo1\mibatch\Archivo.txt \\otroequipo3\utilidades

Son en total 114 equipos...

Como puedo utilizar un for en este caso??



Muchas gracias por su ayuda

JPG1005
[/quote]