elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [BATCH] Dudas varias
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [BATCH] Dudas varias  (Leído 2,691 veces)
baldovi_6

Desconectado Desconectado

Mensajes: 19


Ver Perfil
[BATCH] Dudas varias
« en: 2 Diciembre 2018, 03:22 am »


Buenas noches.

Estoy desarrollando una batch para que me genere unas determinadas carpetas en una rutas segun la tarea que me encomiende mi jefe.
Mi problema es que cada vez que ejecuto el batch, la primera vez siempre me da error, la segunda ya se completa correctamente (Bueno, aun me falta pulir detalles)

Y ahora mismo, me da el siguiente error
31 was unexpected at this time.

No entiendo que ayer funcionase, y hoy no.

Puede estar relacionado con el numero de lineas que llvo escritas?
Hay algun tamaño maximo (o recomendado) que haga que la ejecucion se vuelva inestable?


Un saludo

 :D


En línea

Guarrino

Desconectado Desconectado

Mensajes: 51


Ver Perfil
Re: [BATCH] Dudas varias
« Respuesta #1 en: 2 Diciembre 2018, 06:08 am »

Si puedes dejar el código sería más fácil ayudarte.

O tienes que "deducir" mejor lo que quieres que haga o mira desde que usuario lo ejecutas.


En línea

baldovi_6

Desconectado Desconectado

Mensajes: 19


Ver Perfil
Re: [BATCH] Dudas varias
« Respuesta #2 en: 9 Diciembre 2018, 05:08 am »

Si puedes dejar el código sería más fácil ayudarte.

O tienes que "deducir" mejor lo que quieres que haga o mira desde que usuario lo ejecutas.

Siento la tardanza.

En el siguiente post os dejo el codigo.

Muchas gracias por la respuesta.
En línea

baldovi_6

Desconectado Desconectado

Mensajes: 19


Ver Perfil
Re: [BATCH] Dudas varias
« Respuesta #3 en: 9 Diciembre 2018, 05:15 am »

CODIGO

@ECHO OFF

SETLOCAL ENABLEEXTENSIONS
SET me=%~n0
SET parent=%~dp0

REM | ***************************************************************************************** |
REM | *                                                                                       * |
REM | *                                                                 * |
REM | * Localizacion y copia del fichero de Excel Report_DDMC.xlsm correspondiente al dia     * |
REM | * anterior al que nos encontramos. Posteriormente se copiara en la carpeta recien       * |
REM | * creada del dia de hoy.                                                                * |
REM | * En esta prueba vamos a intentar recuperar el fichero correspondiente al dia de ayer   * |
REM | * 22/11/2018. Tambien simularemos que estamos en 01/01/2018 para que nos recupere el    * |
REM | * fichero de 31/12/2017.                                                                * |
REM | *                                                                                       * |
REM | * Parametros pasados: AuxD, AuxM, AuxY, AuxRuta.                                        * |
REM | *                                                                                       * |
REM | ***************************************************************************************** |
CLS
ECHO.
SET Fecha= %DATE%
SET AuxD=%Fecha:~1,2%
SET AuxM=%Fecha:~4,2%
SET AuxY=%Fecha:~7,4%
SET AuxRuta=C:\Temp\Reports\DDMC\
ECHO %me%: Entramos en Test5
ECHO %AuxD% %AuxM% %AuxY% %AuxRuta%
ECHO.

REM | **************************************************************************************** |
REM | *                                                                                      * |
REM | * Codigo de la funcion de busqueda. Comprobaremos que dia es hoy y tomaremos decision  * |
REM | * basandonos en si es el primer dia del mes, o algun dia posterior.                    * |
REM | *                                                                                      * |
REM | **************************************************************************************** |   

IF NOT %AuxD%==01 (
   ECHO %me%: Entramos dentro del primer IF. Linea 40
   ECHO.
        REM Intento hacer un contador para que cuando encuentre el equivalente al dia de hoy me calcule el dia de ayer tambien. No funciona.
   FOR /L %%i IN (1,1,31) DO (
      IF "%%i"=="%AuxD%" (
         SET /A Hoy=%%i
         SET /A Ayer=%%i-1
         ECHO %me%: Hoy es: %Hoy%
         ECHO %me%. Ayer fue: %Ayer%
      )
   )
   ECHO.
   CALL :NOM_MES %AuxM%
   ECHO Dia anterior: [%DiaAnt%]
   ECHO Mes actual: [%NomMES%]
   MKDIR %AuxRuta%\%AuxY%\%NomMES%\%AuxD%
   ECHO %AuxRuta%\%AuxY%\%NomMES%\%Ayer%
   ECHO.
   IF /I EXIST %AuxRuta%\%AuxY%\%NomMES%\%DiaAnt%\Report_DDMC.xlsm (
      COPY %AuxRuta%\%AuxY%\%NomMES%\%DiaAnt%\Report_DDMC.xlsm  %AuxRuta%\%AuxY%\%NomMES%\%AuxD%
      IF EXIST %AuxRuta%\%AuxY%\%NomMES%\%AuxD%\Report_DDMC.xlsm (
         ECHO COPIA_FICHERO. Copiado archivo Report_DDMC en %AuxRuta%\%AuxY%\%NomMES%\%AuxD%
      ) ELSE ( ECHO COPIA_FICHERO. Error durante la copia del archivo. Revisar. Linea 56)
   ) ELSE ( ECHO El archivo Report_DDMC.xlsm no existe en %AuxRuta%\%AuxY%\%NomMES%\%DiaAnt%. Revisar que ha podido suceder. Linea 79)   
) ELSE (
   ECHO Entramos en el ELSE del bucle IF. Linea 58
   IF %AuxM%==01 (
      ECHO Feliz Año Nuevo, pringao.
      ECHO.
      SET /A LastY=%AuxY%
      SET /A LastY=LastY-1
      SET LastM=12-DECEMBER
      SET LastD=31
      ECHO %LastY%
      ECHO.
      REM Primero hemos de crear las carpetas correspondientes al nuevo año y a los 12 meses.
      COPY %AuxRuta%\%LastY%\12-DECEMBER\31-12\Report_DDMC.xlsm  %AuxRuta%\%AuxY%\01-JANUARY\01-01
      ECHO.
   ) ELSE (
       ECHO %me%: El dia es 1, pero el mes es distinto de Enero. Falta implementar el conteo de carpetas para encontrar cual es el ultimo dia del mes anterior.
      SET /A LastM=%AuxM%
      SET /A LastM=LastM-1
      ECHO %LastM%
      CALL :NOM_MES %LastM%
      ECHO.
      ECHO %me%: Retornamos de NOM_MES. El nombre del mes anterior es %NomMES%
      ECHO.
      ECHO %me%: Ruta del mes anterior: %AuxRuta%\%NomMES% 
      ECHO %me%: Si todo ha ido bien, contador deberia contener el numero de carpetas, y por ende, el numero de dias del mes anterior.
      ECHO %me%: Asi pues, el numero de carpetas del mes anterior es %contador%.
      ECHO %me%: Por tanto, el fichero a copiar debera encontrarse en %AuxRuta%\%NomMES%\%contador%.
      ECHO.
      IF %contador% GEQ 31 (
         ECHO %me%: El numero de carpetas es mayor que 31. Revisar la ruta.
         ECHO.
         DIR %AuxRuta%\%NomMES%\%contador%\*.*
         REM Falta desarrollo paa este caso. Solicitare introducir por teclado la carpeta desde la cual copiar el fichero.
      )
      IF /I EXIST  %AuxRuta%\%NomMES%\%contador% (
         ECHO %me%: La carpeta existe. Vamos a listarla para ver si encontramos el archivo Report_DDMC.xlsm
         ECHO.
         DIR %AuxRuta%\%NomMES%\%contador%\*.xlsm
         ECHO.
         ECHO %me%: Ahora podermos copiar el fichero Report_DDMC.xlsm a la nueva carpeta correspondiente al dia de hoy.
         ECHO.
         
      )
     )
)      
 
GOTO :EOF

: NOM_MES

SET Meses=JANUARY FEBRUARY MARCH APRIL MAY JUNE JULY AUGUST SEPTEMBER OCTOBER NOVEMBER DECEMBER
FOR /F "Tokens=%1" %%a IN ("%Meses%") DO (
   IF %1 GEQ 10 (   
      ECHO  %2\%1-%%a
      MKDIR %2\%1-%%a
   ) ELSE (
      ECHO  %2\0%1-%%a
      MKDIR %2\0%1-%%a
     )

GOTO :EOF




Muchas gracias.
En línea

baldovi_6

Desconectado Desconectado

Mensajes: 19


Ver Perfil
Re: [BATCH] Dudas varias
« Respuesta #4 en: 9 Diciembre 2018, 05:19 am »

Se que esta bastante por pulir y adecentar.
Y tengo dudas si he elegido bien al intentar hacer esto en un batch, pero es lo mas a mano que tengo en el trabajo.

Seguire dandole vueltas pero es que hasta decrementar una variable es extraño.

De nuevo, muchas gracias y perdon por tardar tanto en subir el codigo.
En línea

baldovi_6

Desconectado Desconectado

Mensajes: 19


Ver Perfil
Re: [BATCH] Dudas varias
« Respuesta #5 en: 30 Diciembre 2018, 10:03 am »

Se que esta bastante por pulir y adecentar.
Y tengo dudas si he elegido bien al intentar hacer esto en un batch, pero es lo mas a mano que tengo en el trabajo.

Seguiré dándole vueltas pero es que hasta decrementar una variable es extraño.

De nuevo, muchas gracias y perdón por tardar tanto en subir el código.

Al final este problemas también se ha resuelto.
Me replantee el código y como había enfocado el asunto y reescribí algunos trozos.

Muchísimas gracias a todos.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Varias dudas con Batch
Scripting
....................................... 4 2,821 Último mensaje 28 Marzo 2007, 01:13 am
por sirdarckcat
Varias dudas para extraer informacion de texto x batch?
Scripting
gh1E 6 7,896 Último mensaje 22 Julio 2009, 16:26 pm
por gh1E
[Batch] Varias preguntillas...
Scripting
ypsilon 3 3,166 Último mensaje 31 Agosto 2011, 01:15 am
por leogtz
varias dudas con código batch y como hacer para saber la ip
Scripting
r7pyrred 2 3,021 Último mensaje 24 Noviembre 2012, 01:06 am
por r7pyrred
dudas con batch
Scripting
LordTamarath 2 3,079 Último mensaje 10 Mayo 2023, 15:16 pm
por .xAk.
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines