Código:
A:
cd "A:\Iomega\VER"
For /F "tokens=1,2,*" %%a in (A:\Dropbox\Bats\Comodins\series.txt) do (
call A:\Dropbox\Bats\Pendientes\prueba1.bat %%a %%b %%c
call A:\Dropbox\Bats\Pendientes\prueba2.bat
call :prueba3
)
exit
Yo pensaba que el bat "prueba1" llevaria como "%1" el valor que el for tiene en "%%a" cada vez que fuese llamado, pero no es asi.
No esto seguro de que se pueda, pero se pueden introducir asi el valor?
La finalidad de usar eso es que "series.txt" es un fichero donde tengo los nombres de series que tengo para ver, decidi hacerlo asi porque somos un grupo de amigos que las vamos viendo cada uno en su ordenador, asi a la vez que voy practicando batch nos simplifico el trabajo.
Ya tengo el codigo hecho (os lo pego abajo por si lo necesitais) pero quiero reducirlo a algo parecido al formato de arriba, pues el fichero "series.txt" lo uso para 3 batchs mas y asi lo puedo modificar de una forma mas sencilla, ademas tengo demasiados goto en el codigo y es muy muy lio!
PD: si alguien quiere dar algun consejo en concreto o mencinar algun error que tenga que no tenga que ver con la pregunta estaran bien recibidos, pues creo que se nota que no llevo mucho tiempo con esto.
(perdonad el biliguismo, los comentarios estan escritos parte en gallego, parte en castellano)
Codigo:
Código:
A:
cd "A:\Iomega\VER"
set cod=1
:1
set s=666 Park Avenue
set /a cod=%cod%+1
set t=1
set tf=1
goto prueba1
:2
set s=Alphas
set /a cod=%cod%+1
set t=1
set tf=4
goto prueba1
:3
set s=American dad
set /a cod=%cod%+1
set t=7
set tf=9
goto prueba1
:4
set s=American Horror Story
set /a cod=%cod%+1
set t=3
set tf=4
goto prueba1
:5
set s=Anger management
set /a cod=%cod%+1
set t=2
set tf=4
goto prueba1
:6
set s=Apocalipsis en el instituto
set /a cod=%cod%+1
set t=2
set tf=2
goto prueba1
:7
set s=Arrow
set /a cod=%cod%+1
set t=2
set 4
goto prueba1
:8
:9
set s=Boardwalk Empire
set /a cod=%cod%+1
set t=1
set tf=4
goto prueba1
:10
set s=Breaking bad
set /a cod=%cod%+1
set t=5
set tf=6
goto prueba1
:11
set s=Como conoci a vuestra madre
set /a cod=%cod%+1
set t=8
set tf=10
goto prueba1
:12
set s=Da Vinci daemons
set /a cod=%cod%+1
set t=2
set tf=3
goto prueba1
:13
set s=Defiance
set /a cod=%cod%+1
set t=2
set tf=3
goto prueba1
:14
set s=Dexter
set /a cod=%cod%+1
set t=1
set tf=2
goto prueba1
:15
set s=El mentalista
set /a cod=%cod%+1
set t=1
set tf=2
goto prueba1
:16
set s=Erase_una vez
set /a cod=%cod%+1
set t=3
set tf=4
goto prueba1
:17
set s=Eureka
set /a cod=%cod%+1
set t=2
set tf=4
goto prueba1
:18
set s=Falling Skies
set /a cod=%cod%+1
set t=4
set tf=5
goto prueba1
:19
set s=Fringe
set /a cod=%cod%+1
set t=1
set tf=4
goto prueba1
:20
set s=Generation kill
set /a cod=%cod%+1
set t=1
set tf=2
goto prueba1
:21
set s=Hannibal
set /a cod=%cod%+1
set t=2
set tf=4
goto prueba1
:22
set s=Homeland
set /a cod=%cod%+1
set t=3
set tf=6
goto prueba1
:23
set s=House of cards
set /a cod=%cod%+1
set t=1
set tf=3
goto prueba1
:24
set s=Juego de tronos
set /a cod=%cod%+1
set t=4
set tf=6
goto prueba1
:25
set s=La chica invisible
set /a cod=%cod%+1
set t=3
set tf=4
goto prueba1
:26
set s=La cupula
set /a cod=%cod%+1
set t=1
set tf=2
goto prueba1
:27
set s=Ladron de guante blanco
set /a cod=%cod%+1
set t=1
set tf=2
goto prueba1
:28
set s=Los simpson
set /a cod=%cod%+1
set t=22
set tf=25
goto prueba1
:29
set s=Misfits
set /a cod=%cod%+1
set t=4
set tf=5
goto prueba1
:30
set s=New Girl
set /a cod=%cod%+1
set t=2
set tf=4
goto prueba1
:31
set s=Peque¤as mentirosas
set /a cod=%cod%+1
set t=2
set tf=3
goto prueba1
:32
set s=Revenge
set /a cod=%cod%+1
set t=3
set tf=4
goto prueba1
:33
set s=Revolution
set /a cod=%cod%+1
set t=2
set tf=4
goto prueba1
:34
set s=Roma criminal
set /a cod=%cod%+1
set t=1
set tf=3
goto prueba1
:35
set s=Sons of anarchy
set /a cod=%cod%+1
set t=1
set tf=3
goto prueba1
:36
set s=Suits
set /a cod=%cod%+1
set t=1
set tf=2
goto prueba1
:37
set s=The big bang theory
set /a cod=%cod%+1
set t=7
set tf=8
goto prueba1
:38
set s=Vikingos
set /a cod=%cod%+1
set t=1
set tf=3
goto prueba1
:39
set s=The Following
set /a cod=%cod%+1
set t=2
set tf=4
goto prueba1
:40
set s=Elementary
set /a cod=%cod%+1
set t=1
set tf=2
goto prueba1
:41
set s=The walking dead
set /a cod=%cod%+1
set t=4
set tf=6
goto prueba1
:42
set s=Utopia
set /a cod=%cod%+1
set t=2
set tf=4
goto prueba1
:43
set s=Dos hombres y medio
set /a cod=%cod%+1
set t=10
set tf=12
goto prueba1
:44
set s=Chuck
set /a cod=%cod%+1
set t=5
set tf=6
goto prueba1
:45
set s=Padre de familia
set /a cod=%cod%+1
set t=12
set tf=13
goto prueba1
:46
set s=Community
set /a cod=%cod%+1
set t=3
set tf=5
goto prueba1
:47
set s=Dos chicas sin blanca
set /a cod=%cod%+1
set t=1
set tf=3
goto prueba1
:48
set s=Modern family
set /a cod=%cod%+1
set t=4
set tf=7
goto prueba1
:49
set s=The newsroom
set /a cod=%cod%+1
set t=1
set tf=3
goto prueba1
:50
set s=Finales felices
set /a cod=%cod%+1
set t=2
set tf=4
goto prueba1
:51
set s=Louie
set /a cod=%cod%+1
set t=1
set tf=4
goto prueba1
:52
set s=Wilfred
set /a cod=%cod%+1
set t=1
set tf=4
goto prueba1
:53
set s=Scandal
set /a cod=%cod%+1
set t=1
set tf=4
goto prueba1
:54
set s=Veep
set /a cod=%cod%+1
set t=1
set tf=4
goto prueba1
:55
set s=Bobs Burguer
set /a cod=%cod%+1
set t=1
set tf=4
goto prueba1
:56
set s=Person of interest
set /a cod=%cod%+1
set t=1
set tf=4
goto prueba1
:57
set s=Hope
set /a cod=%cod%+1
set t=1
set tf=4
goto prueba1
:58
set s=Hart of Dixie
set /a cod=%cod%+1
set t=1
set tf=4
goto prueba1
:59
set s=The Bridge
set /a cod=%cod%+1
set t=1
set tf=4
goto prueba1
:60
set s=Rehenes
set /a cod=%cod%+1
set t=1
set tf=4
goto prueba1
:61
set s=Agents of SHIELD
set /a cod=%cod%+1
set t=1
set tf=4
goto prueba1
:62
set s=Vaya Vecinos
set /a cod=%cod%+1
set t=1
set tf=4
goto prueba1
:63
set s=Crosing lines
set /a cod=%cod%+1
set t=1
set tf=4
goto prueba1
:64
set s=Sleepy Hollow
set /a cod=%cod%+1
set t=1
set tf=4
goto prueba1
:65
set s=Bates Motel
set /a cod=%cod%+1
set t=1
set tf=4
goto prueba1
:66
set s=Banshee
set /a cod=%cod%+1
set t=1
set tf=1
goto prueba1
pendientes.bat
:67
set s=dates
set /a cod=%cod%+1
set t=1
set tf=2
goto prueba1
:67
set s=Ray Donovan
set /a cod=%cod%+1
set t=1
set tf=2
goto prueba1
pendientes.bat
:68
set s=The americans
set /a cod=%cod%+1
set t=1
set tf=2
goto prueba1
:Reparto
title %cod% de 70
goto %cod%
rem 70 es un numero aproximado, cuando goto marque un numero que no esté dara error y finalizara el batch
:prueba1
rem miramos si existe en pendientes, si non hay ningun capituo pendiente non ten sentido!
if not exist "pendientes\%s%*.avi" goto reparto
rem miro si existen 3 capitulos xa, si xa hay 3 que se pire!
set cuenta1=0
For %%x in ("%s%*.avi") do (
call "A:\Dropbox\Bats\Comodins\contar\cuenta1.bat"
)
if %cuenta1% geq 3 goto reparto
rem si esta o cap 101 e obvio que non hay ningun en Ver asique o mova xa...
rem mover1 porque si estan o 2 e 3 que se movan tamen!
if exist "pendientes\%s% 101.avi" goto mover1
set cap=0
:revalor
set /a c=%t%*100+1
rem este entra en accion cando cambia a temporada dunha serie, fai que a temporada 7 empece no cap 701 e asi sucesivamente.
:prueba2
rem esto quere decir que existe polo menos un capitulo en pendientes
rem ahora vamos a buscar si hay un capitulo en VER, si sabemos cal e con pedir o siguiente basta!
if not exist "%s%*.avi" goto prueba3
if %t% gtr %tf% goto error4
if "%c%" gtr "%t%25" goto error7
if not exist "%s% %c%.avi" set /a c=%c%+1 & goto prueba2 rem da votas hasta que encontre un que exista
set /a cap=%cap%+1
set /a c=%c%+1 rem aumenta 1 pa buscar o siguiente
if not exist "%s% %c%.avi" goto mover2
set /a cap=%cap%+1
set /a c=%c%+1 rem aumenta 1 pa buscar o ultimo (terceiro)
if not exist "%s% %c%.avi" goto mover2
set /a cap=%cap%+1
if %cap%==3 goto reparto
rem si chega aqui algo falla!
echo ERROR1 esto e simbolico, nunca deberia chegar aqui pero por sea caso aqui esta!
pause>nul
exit
:prueba3
if %t% gtr %tf% goto error4
if "%c%" gtr "%t%25" goto error6
if not exist "pendientes\%s% %c%.avi" set /a c=%c%+1 & goto prueba3 rem da votas hasta que encontre un que exista
goto mover4
:mover1
rem chega aqui cando existe o capitulo 1 da primeira temporada, non ten sentido que non o mova, e aproveito pa mover os 3 primeiros
Move "pendientes\%s% 101.avi" .
Move "pendientes\%s% 102.avi" .
Move "pendientes\%s% 103.avi" .
goto reparto
:mover2
rem solo chega aqui si da positivo en prueba2
rem quere decir que teño que mover 2 capitulos de esa serie
if not exist "pendientes\%s% %c%.avi" goto mover3
if exist "pendientes\%s% %c%.avi" move "pendientes\%s% %c%.avi" . & set /a cap=%cap%+1
if %cap%==3 goto reparto
set /a c=%c%+1
if not exist "pendientes\%s% %c%.avi" goto mover3
if exist "pendientes\%s% %c%.avi" move "pendientes\%s% %c%.avi" . & set /a cap=%cap%+1
if %cap%==3 goto reparto
rem solo movo 2 porque estou na premisa de que xa existe polo menos 1!
rem si chega aqui algo falla!
echo ERROR2 en mover2esto e simbolico, nunca deberia chegar aqui pero por sea caso aqui esta!
pause>nul
exit
:mover3
set /a t=%t%+1
set /a c=%t%*100+1
if exist "pendientes\%s% %c%.avi" move "pendientes\%s% %c%.avi" . & set /a cap=%cap%+1
if %cap%==3 goto reparto
set /a c=%c%+1
if exist "%s% %c%.avi" goto reparto
rem esto e unha excepcion do codigo
rem daba problemas cando habia o ultimo cap dunha temporada e os 2 primeiros da siguiente
rem si se da ese caso, esta linea fai que pase de largo esa serie e non dea error (xa que non existe ningun error)
if exist "pendientes\%s% %c%.avi" move "pendientes\%s% %c%.avi" . & set /a cap=%cap%+1
if %cap%==3 goto reparto
goto prueba1
rem si chega aqui algo falla!
echo ERROR3: mover3 esto e simbolico, nunca deberia chegar aqui pero por sea caso aqui esta!
pause>nul
exit
:mover4
rem solo pasa por aqui si o manda a prueba3
if exist "pendientes\%s% %c%.avi" Move "pendientes\%s% %c%.avi" "A:\Iomega\VER" & goto prueba1
rem si chega aqui algo falla
echo ERROR5 nunca deberia chegar aqui pero meto por sea caso
pause>nul
exit
:error4
echo ERROR4: Numero de temporada final (%tf%) incorrecta en %s% >> A:\Documentos\ERRORESPENDIENTES
goto reparto
:error6
echo temporada de inicio (%t%) incorrecta en %s%, cambiar para mayor eficiencia >> A:\Documentos\ERRORESPENDIENTES
set /a t=%t%+1
goto revalor
:error7
echo temporada de inicio (%t%) incorrecta en %s% >> A:\Documentos\ERRORESPENDIENTES
set /a t=%t%+1
goto revalor