Назад | Перейти на главную страницу

Оценка выражений в пакетном скрипте Windows

Этот вопрос может оказаться самым тупым, поскольку я, вероятно, упускаю из виду очевидное. В любом случае, вот оно: можете ли вы оценивать выражения в пакетном скрипте. Например, я хочу сложить два числа и распечатать результат:

echo 4+2

Это просто напечатает «4 + 2», а не «6». Возможно, я слишком далеко захожу в пакетном сценарии для Windows ...

Спасибо!

Сюда:

Set /a 4+2

Или сохранить его в переменной на потом:

Set /a foo = 4+2
echo %foo%

И, отвечая на вашу последнюю строчку, есть большая вероятность, что вы продвигаете партию немного дальше, чем предполагалось. Хост Windows Script доступен на вашем компьютере и позволяет использовать VBScript или JScript. Кроме того, если вы все равно собираетесь узнать что-то новое, я настоятельно рекомендую вместо этого использовать Powershell.

set Result=0

echo start %Result%

echo Adding 4 and 2
set /a Result= 4+2

echo finish %result%

pause >nul

Если у вас установлен bash / perl (например, cygwin), просто вызовите их, чтобы посчитать:

@for /f "delims=" %%a in ('perl -e "print(%*)"'        ) do @set RESULT=%%a
@echo %RESULT%

@for /f "delims=" %%a in ('bash -c "echo $((%*))"'        ) do @set RESULT=%%a  
@echo %RESULT%

Результат образца:

c:\> script.cmd  2**10/3
341.333333333333
341