programacion Batch

Iniciado por jpg1005, 22 Junio 2012, 23:58 PM

0 Miembros y 1 Visitante están viendo este tema.

jpg1005

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 (dos) [Seleccionar]

@echo off
:Menu
cls
color 3f
echo.
echo       ========================================================
echo                 P E R F I L   D E   A N A L I S T A S
echo       ========================================================
echo.
echo       Escoja la Opcion:
echo.
echo             1.  Pasar Archivos En La Zona 1
echo.
echo             2.  Pasar Archivos En La Zona 2
echo.
Set /p var= _:
if %var%==1 goto :Zona1
if %var%==2 goto :Zona2
if %var%==0 goto exit
if %var% GTR 2 echo Error
goto :Menu
:Zona1
cls
echo.
echo.
echo       ======================================================== >Log.txt
echo               PROCESO INICIADO  A LAS %time%                   >>Log.txt
echo       ======================================================== >>Log.txt
echo.                                                                                                                                     >>Log.txt
echo.                                                                                                                                     >>Log.txt
setlocal EnableDelayedExpansion
set /p Normbre=Digite El Nombre Del Archivo:
for /f "tokens=1,%Nombre% delims=," %%j in (Zona1.txt) do (
   echo.                                                                                                                                    >>Log.txt
   echo.                                                                                                                                    >>Log.txt
   echo       ======================================================== >>Log.txt
   echo            Pasando Archivos al servidor %%k                    >>Log.txt
   echo       ======================================================== >>Log.txt
   For %%i IN (*total.*) do (
       echo copiando el archivo "%%i" a la carpeta %%k                 >>Log.txt
       fastcopy.exe /cmd=force_copy /logfile=Log.txt /no_confirm_stop  /force_close "%%i"

/to=%%k
   )

FINDSTR /V "FastCopy * <Source> * <DestDir> * <Command> * TotalRead * TotalWrite *

TransRate * FileRate " Log.txt  >log2.txt
Pause>Nul
goto :Menu
exit


Muchas gracias por su ayuda

JPG1005

Eleкtro

#1
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 (DOS) [Seleccionar]
/to=%%k
Se te ha colado, Esa linea dará error ya que no es ningún comando.


Citar
Código (DOS) [Seleccionar]
FINDSTR /V "FastCopy * <Source> * <DestDir> * <Command> * TotalRead * TotalWrite *

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 (dos) [Seleccionar]
setlocal EnableDelayedExpansion


Saludos








jpg1005

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]