Мне очень нравится ответ @Andriy, но я бы добавил одну вещь, чтобы сделать его многократно используемой функцией.
@echo off
CALL :pow 2 3 :: 8
CALL :pow 3 3 :: 27
CALL :pow 5 5 :: 3125
CALL :pow 256 3 :: 16777216
set /p=End of Script, press any key to exit...
GOTO :EOF
:: ----- Call Functions -----
:pow
SET pow=1
FOR /L %%i IN (1,1,%2) DO SET /A pow*=%1
ECHO %pow%
GOTO :EOF
PS Вы также можете поместить «функции» в файлы (например, «pow.bat ", use будет просто" pow nn ") и называть их так, что может быть удобно (особенно если вы начинаете использовать переменную path).Я всегда считал создание многократно используемых функций в Batch самой крутой, но наименее известной «функцией» языка сценариев.Кроме того, вы сможете использовать переменную% pow% в своем скрипте (или назначить ее для другой переменной) до тех пор, пока она не будет перезаписана путем повторного вызова функции.
Последнее, что я хотел бы сделать, этохотя это забавное упражнение, есть ограничение точности для пакета. Я обнаружил, что пакет не может правильно вычислить числа больше 2 ** 31 (ограничение 32 бита).
Best!