Autor
|
Tema: (SOLUCIONADO) [ Batch ] Problemilla con variable Set /a... (Leído 6,910 veces)
|
SuperDraco
Desconectado
Mensajes: 2.505
Crew Dragon
|
hola, ya tengo otro problema que me trae de cabeza :S les recorto el trozo que interesa, del script: blabla... ... & findstr blablabla & call : proceso :proceso IF %ERRORLEVEL% EQU 0 set /a num+=1 & blablabla lo que sigue... :Terminar set /a num+=6 & mode con lines= %num%
... pero el número siempre es "1", y no se porque. Así que para probar, hice esto: echo %num% set num2=%num% set /a num2+=6 echo numero nuevo:%num2% pause
Y el resultado es esto: ¿Porque no me deja? PD: En cambio, si repito el proceso manualmente en la consola, si que me deja, así que he pensado que el problema puede estar en los caracteres " %", pero ya he probado cambiandolos y nada...
|
|
« Última modificación: 20 Marzo 2011, 11:40 am por pitoloko »
|
En línea
|
No he vuelto, solo estoy de paso.
|
|
|
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
Desconectado
Mensajes: 3.069
/^$/
|
Si pudieras poner todo el trozo de código, y más si estás dentro de un loop FOR.
|
|
|
En línea
|
|
|
|
SuperDraco
Desconectado
Mensajes: 2.505
Crew Dragon
|
Uf, es que si lo pongo todo va a ser un lio, ya sabes que soy d malas costumbres xDDD, Ahí va: Mode con cols=60 lines=18 Set Lista= %Temp%\Lista.txt :BUSCAR for /f "tokens=*" %%a in (' dir /B *.mp3' ) do cls & set nombre= %%a & mediainfo " %%a" "--Inform=General; %%BitRate%%" | findstr "2..... 3....." >nul & call : MP3 :TERMINAR cls If exist %lista% set num2= %num% & set /a num2+=6 & mode con lines= %num2% & echo+ Se han convertido correctamente %num% audios..." & type %lista% & del /q %lista% & pause >nul & exit If not exist %lista% mode con lines=3 cols=65 & echo+ No se ha encontrado ningun audio superior a +160 kbps. & sleep 3 & exit :MP3 IF %ERRORLEVEL% LEQ 0 cls & set /a num+=1 & echo+ %nombre%>> %lista% & coreconverter.exe -infile=" %nombre:~0,-5%.mp3" -outfile=" %nombre:~0,-5%.mp3" -convert_to="mp3 (Lame )" -b 160 & goto:eof
la parte que falla es el "Set /a" de la subrutina ":TERMINAR", el "Set /a" de ":MP3" funciona correctamente porque se me muestra bien la variable:
|
|
« Última modificación: 19 Marzo 2011, 00:01 am por Leo Gutiérrez. »
|
En línea
|
No he vuelto, solo estoy de paso.
|
|
|
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
Desconectado
Mensajes: 3.069
/^$/
|
Mode con cols=60 lines=18 Set Lista= %Temp%\Lista.txt :BUSCAR cls mediainfo " %%a" "--Inform=General; %%BitRate%%" | findstr "2..... 3....." >nul) :TERMINAR cls echo+ Se han convertido correctamente %num% audios..." type %lista% ) echo+ No se ha encontrado ningun audio superior a +160 kbps. sleep 3 ) :MP3 cls coreconverter.exe -infile="%nombre:~0,-5%.mp3" -outfile="%nombre:~0,-5%.mp3" -convert_to="mp3 (Lame)" -b 160 )
Es tu código, pero poniendo cada sentencia en una línea.
|
|
|
En línea
|
|
|
|
SuperDraco
Desconectado
Mensajes: 2.505
Crew Dragon
|
Muchas gracias por las molestias que te tomas, Arreglar el código e instalarte el mediainfo, ya he "reescrito" todo el código a tu manera, para empezar a hacer las cosas bien xD... Pero bueno, vayamos al tema, ¿que puedo hacer con el problema del "Set /A"? saludos! EDITO: Ya lo he solucionado, no funcionaba porque estaba dentro del "IF" (No se porque...) pero al dejarlo afuera, ya me va perfecto: :END cls mode con lines= %num2% & %Centrar% Colous writesec "[7] Se han convertido correctamente [2] %num%[7] audios..." & echo+ FART.exe -q %lista% \" --remove type %lista% )
|
|
« Última modificación: 19 Marzo 2011, 09:19 am por pitoloko »
|
En línea
|
No he vuelto, solo estoy de paso.
|
|
|
SuperDraco
Desconectado
Mensajes: 2.505
Crew Dragon
|
Aún tengo que probar el método que me dijiste con " findstr", pero como de momento el mio creo que no da fallos, antes de probar el tuyo quiero ir por partes y terminar una cosa que aún llevo mal, se trata de esto: mediainfo "%%a" "--Inform=General;%%BitRate%%" Como puedo pasar el valor que me da ese comando (El número 320000), a una variable, para "jugar" con ella por ejemplo así dentro de mi script?: For /f... blablabla...mediainfo "%%a" "--Inform=General;%%BitRate%%" > %rate% & goto :xxx
:xxx echo Convirtiendo el archivo: %%a echo Bitrate del archivo original: %rate% He estado probando con "set /p" y "set" pero no consigo hacerlo... ¿Como creo la variable "rate" para luego guardar el numero en esa variable y poder usarlo como "echo %rate%"?
|
|
« Última modificación: 19 Marzo 2011, 10:55 am por pitoloko »
|
En línea
|
No he vuelto, solo estoy de paso.
|
|
|
xassiz~
|
for /f "tokens=*" %%%% in ('mediainfo " %%a" "--Inform=General; %%BitRate%%"') do set "rate=%%~%%"
|
|
|
En línea
|
|
|
|
SuperDraco
Desconectado
Mensajes: 2.505
Crew Dragon
|
for /f "tokens=*" %%%% in ('mediainfo " %%a" "--Inform=General; %%BitRate%%"') do set "rate=%%~%%"
Pero, como haría eso dentro de este for? mediainfo " %%a" "--Inform=General; %%BitRate%%" | findstr "161... 162... 163... 164... 165... 166... 167... 168... 169... 17.... 18.... 19.... 2..... 3....." >nul)
Necesito meterlo dentro de ese for... Se podría mezclar mi FOR con tu FOR??? Es que, como está el " findstr" de por medio, me parece algo imposible para mi... Gracias de todas formasss por la ayuda
|
|
« Última modificación: 19 Marzo 2011, 16:29 pm por pitoloko »
|
En línea
|
No he vuelto, solo estoy de paso.
|
|
|
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
Desconectado
Mensajes: 3.069
/^$/
|
rem Por cada mp3.... rem Seteamos el nombre para que pueda usarse globalmente... rem Por cada mp3 sacamos su información... es el mismo código de ~xassiz. rem No sé si funcione. rem Cuando ya tenemos seteado el "rate" for /f "tokens=*" %%%% in ('mediainfo " %%a" "--Inform=General; %%BitRate%%"') do set "rate=%%~%%" rem Llamamos a MP3 )
|
|
|
En línea
|
|
|
|
SuperDraco
Desconectado
Mensajes: 2.505
Crew Dragon
|
Gracias a los 2, parece que ya lo he solucionado.
|
|
|
En línea
|
No he vuelto, solo estoy de paso.
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[BATCH][solucionado] guardar ip externa en una variable
Scripting
|
queteimporta
|
0
|
5,610
|
21 Marzo 2008, 14:26 pm
por queteimporta
|
|
|
[BATCH] Asignar a una variable el resultado de un comando (Solucionado)
Scripting
|
TaRGaZo
|
2
|
18,835
|
30 Junio 2009, 10:59 am
por TaRGaZo
|
|
|
Problema con variable del FOR (Batch) SOLUCIONADO
Scripting
|
<ИΘZIЭ(ŦB>
|
8
|
6,308
|
20 Septiembre 2009, 14:15 pm
por Guerrerohgp
|
|
|
Insertar caracteres en una variable [Batch] (SOLUCIONADO)
« 1 2 »
Scripting
|
DA KILLER
|
12
|
9,823
|
3 Julio 2010, 23:38 pm
por DA KILLER
|
|
|
[Batch] Como puedo validar la variable? [Solucionado]
« 1 2 »
Scripting
|
Batitoul
|
13
|
13,073
|
12 Septiembre 2011, 00:20 am
por leogtz
|
|