Título: [BATCH] Error al final de la ejecucion Publicado por: baldovi_6 en 3 Noviembre 2018, 17:21 pm Buenas tardes a tod@s.
Estoy intentando crear un pedazo de codigo que me cree 12 carpetas, una para mes, pero al final de la ejecucion me da un error que me gustaria entender, para solucionarlo . Os dejo el codigo: @ECHO OFF CLS ECHO. PUSHD C:\Temp FOR /L %%i IN (1,1,12) DO ( CALL :Mes %%i) : Mes SET Meses=JANUARY FEBRUARY MARCH APRIL MAY JUNE JULY AUGUST SEPTEMBER OCTOBER NOVEMBER DECEMBER ECHO Valor del parametro: %1 ECHO. FOR /F "Tokens=%1" %%a IN ("%Meses%") DO ( IF %1 GEQ 10 ( ECHO %1-%%a MKDIR %1-%%a ) ELSE ( ECHO 0%1-%%a MKDIR 0%1-%%a ) GOTO :EOF ) ECHO. GOTO :EOF Y ahora la salida que me da: Valor del parametro: 1 01-JANUARY Valor del parametro: 2 02-FEBRUARY Valor del parametro: 3 03-MARCH Valor del parametro: 4 04-APRIL Valor del parametro: 5 05-MAY Valor del parametro: 6 06-JUNE Valor del parametro: 7 07-JULY Valor del parametro: 8 08-AUGUST Valor del parametro: 9 09-SEPTEMBER Valor del parametro: 10 10-OCTOBER Valor del parametro: 11 11-NOVEMBER Valor del parametro: 12 12-DECEMBER Valor del parametro: 10 was unexpected at this time. C:\temp> El caso es que no acabo de ver porque sale la linea que dice: 10 was unexpected at this time. El texto que dice Valor del parametro es añadido mio para control. Al final no aparecera, ya que lo quitare. Muchisimas gracias. Título: Re: [BATCH] Error al final de la ejecucion Publicado por: baldovi_6 en 3 Noviembre 2018, 18:48 pm Repasando el codigo, me he dado cuenta que no habia puesto en GOTO :EOF detras del FOR.
He dejado el codigo tal que asi: @ECHO OFF CLS ECHO. PUSHD C:\Temp FOR /L %%i IN (1,1,12) DO ( CALL :Mes %%i) GOTO :EOF : 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 %1-%%a REM MKDIR %1-%%a ) ELSE ( ECHO 0%1-%%a REM MKDIR 0%1-%%a ) ) GOTO :EOF Y la salida me queda ahora como yo queria. 01-JANUARY 02-FEBRUARY 03-MARCH 04-APRIL 05-MAY 06-JUNE 07-JULY 08-AUGUST 09-SEPTEMBER 10-OCTOBER 11-NOVEMBER 12-DECEMBER C:\temp> Título: Re: [BATCH] Error al final de la ejecucion Publicado por: baldovi_6 en 3 Noviembre 2018, 18:50 pm Repasando el codigo, me he dado cuenta que no habia puesto en GOTO :EOF detras del FOR. He dejado el codigo tal que asi: @ECHO OFF CLS ECHO. PUSHD C:\Temp FOR /L %%i IN (1,1,12) DO ( CALL :Mes %%i) GOTO :EOF : 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 %1-%%a REM MKDIR %1-%%a ) ELSE ( ECHO 0%1-%%a REM MKDIR 0%1-%%a ) ) GOTO :EOF Y la salida me queda ahora como yo queria. 01-JANUARY 02-FEBRUARY 03-MARCH 04-APRIL 05-MAY 06-JUNE 07-JULY 08-AUGUST 09-SEPTEMBER 10-OCTOBER 11-NOVEMBER 12-DECEMBER C:\temp> Los MKDIR los he comentado porque me habia cansado de borrar las carpetas una y otra vez.... :-) |