Hola:
Estoy construyendo un programa de música (usando NIRCMD desde BATCH) y para poder fijar una nota tomo como constante el valor de la Nota SOL=49 (49 Hz). Para saber el semitono por encima o debajo necesito calcular lo siguiente:
Semitono por encima=Tono base * (2^(1/12))
Si es Bemol (semitono por debajo)
Semitono por debajo=Tono Base / (2^(1/12))
Como en Batch no lo puedo hacer, habría que hacer esas operaciones en VBS y enviarlas a un Fichero TXT que sería leido por el BATCH volcandolo en una variable que será la nota ejecutada por el NIRCMD.
Por supuesto el valor obtenido debe de ser redondeado por encima para poder usarse.
¿Alguien puede ayudarme?
No te puedo ayudar con lo primero, Nunca he echo matemáticas en VBS, Aunque si leyeras este tutorial de NovLucker... ahí ves ejemplos con los operadores.
http://foro.elhacker.net/scripting/tutorial_vbscript-t229032.0.html
Sobre la variable, te hago la mitad del code VBS.
"(OPERACIÓN)"
wscript.quit("VARIABLE QUE CONTIENE EL NÚMERO RESULTADO DE LA OPERACIÓN")
end if
Luego en batch solo tendrías que usar %ERRORLEVEL% Para mostrar el valor que dió el VBS.
Ejemplo:
@echo off
wscript elvbs.vbs
Echo %ERRORLEVEL%
Pause >nul
Creo que debería funcionar
Saludos!
Para redondear ...
valor = 55.66674
msgbox round(valor,2)
'redondeado el valor a 2 decimales
El resto de las operaciones es igual
Saludos