Solución al primer problema:
En el resto del código, hay varias cosas mal.
1. Cuando setees valores numéricos usa el switch "/A" en el comando set:
2. Si estás dentro de un if o un for es por eso que no te puede mostrar el contenido de la variable "%mitad%", debes habilitar la expansión de variables y usar la sintaxis correcta:
...O bien usar el comando call como más arriba he comentado.
3.
Esto no es Java , desconozco el valor que tiene la variable del for pero me imagino que es un número, así que estás intentando comparar un número con un string:
4.
Repito lo mismo de antes, Batch es tán limitado que no puedes hacer ese tipo de operaciones de la manera en la que lo estás haciendo, pues no es Java.
No agrupes los números, y no uses números, usa variables, es decir, primero calculas el valor de la operación y lo seteas en una variable, pero no lo intentes calcular así diréctamente en la expresión de la comparación, y luego ya comparas una variable con la otra.
Saludos!
Código (dos) [Seleccionar]
Set /A "VAR=7" 1>NUL & call echo %VAR%
En el resto del código, hay varias cosas mal.
1. Cuando setees valores numéricos usa el switch "/A" en el comando set:
Código (dos) [Seleccionar]
set /A "Var=0"
2. Si estás dentro de un if o un for es por eso que no te puede mostrar el contenido de la variable "%mitad%", debes habilitar la expansión de variables y usar la sintaxis correcta:
Código (dos) [Seleccionar]
SetLocal EnableDelayedExpansion
echo !mitad!
...O bien usar el comando call como más arriba he comentado.
3.
CitarCódigo [Seleccionar]if %%a == "((%%a-1)*3 -(%%a+30))"
Esto no es Java , desconozco el valor que tiene la variable del for pero me imagino que es un número, así que estás intentando comparar un número con un string:
Código [Seleccionar]
if numero == "número"
4.
CitarCódigo [Seleccionar]((%%a-1)*3 -(%%a+30))
Repito lo mismo de antes, Batch es tán limitado que no puedes hacer ese tipo de operaciones de la manera en la que lo estás haciendo, pues no es Java.
No agrupes los números, y no uses números, usa variables, es decir, primero calculas el valor de la operación y lo seteas en una variable, pero no lo intentes calcular así diréctamente en la expresión de la comparación, y luego ya comparas una variable con la otra.
Código (dos) [Seleccionar]
:: Primero seteas la operación aritmética que quieras:
Set /A "Valor= 1 * 3 - 3"
:: Y luego comparar variable con variable:
If %%a EQU %Valor% () ELSE ()
Saludos!