RE:Recuperar nombres de archivos
Te ponga la respuesta que te comentaba y despues te comento más:
========================================
El SET dentro de un FOR o un IF no acaba de estar muy bien resuelto, da bastantes problemas. La solucion que encontre es volver a los origenes, es decir en lugar de esto:
IF %VAR% == BIEN (
SET VAR_2=PASO-1
ECHO "Texto - 1"
) ELSE (
SET VAR_2=PASO-2
ECHO "Texto - 2"
)
Esto siembre funciona:
IF not %VAR% == BIEN goto ELSE
SET VAR_2=PASO-1
ECHO "Texto - 1"
GOTO ENDIF
:ELSE
SET VAR_2=PASO-2
ECHO "Texto - 2"
:ENDIF
El lugar de esto:
FOR %%a IN (1 2 3 4 5 ) do SET VAR=%VAR% %%a
Esto siempre funciona
@echo off
IF "%1" == "/@" goto Bucle
FOR %%a in (1 2 3 4 5) do call %0 /@ %a
goto Fin
:Bucle
SET VAR=%VAR% %2
:Fin
Segun que se desea hacer con un FOR o un IF no acaba de ir bien sobre todo la asignación de variables mediante el comando SET, estos ejemplos solo pretenden ser una forma de mostrar una solución alternativa.
Un saludo
================================================
Yo me inclino por lo clasico, quizas se por la edad o la nostalgia o porque siempre funciona y en cualquier version de DOS.
Mi consejo es que el FOR llame a un BAT y le pase el parametro. Este BAT puede ser el mismo del FOR u otro. Es mejor que intentar meterlo dentro del FOR, al menos sabes que se comporada como deseas y no como le de la gana.
==> Solucion - 1 ( 2 BAT's)
___BAT - 1___
FOR /F "tokens=1 delims=:" %%A IN ('TYPE news_files.txt') DO call BAT_2 %%A
___BAT - 2___
set myVar=%1
set tipo=%myVar:~4,2%
set hora=%myVar:~7,2%
set dia=%myVar:~11,2%
set mes=%myVar:~14,2%
set anio=%myVar:~17,4%
set nuevo_nombre=%anio%-%mes%-%dia%-%hora%-%tipo%.EXT
XCOPY version8\%myVar% version7\%nuevo_nombre%
==> Solucion - 2 ( 1 BAT )
___BAT - 1___
@echo off
IF "%1" == "/@" goto Bucle
FOR /F "tokens=1 delims=:" %%A IN ('TYPE news_files.txt') DO call %0 /@ %%A
goto Fin
:Bucle
set myVar=%2
set tipo=%myVar:~4,2%
set hora=%myVar:~7,2%
set dia=%myVar:~11,2%
set mes=%myVar:~14,2%
set anio=%myVar:~17,4%
set nuevo_nombre=%anio%-%mes%-%dia%-%hora%-%tipo%.EXT
XCOPY version8\%myVar% version7\%nuevo_nombre%
:Fin
OJO Cuidado con los espacios al final de la linea del SET dan algunos problemas.
Un Saludo.