@echo off
echo. 返回a^^b的值.
set /p a=请输入a:
set /p b=请输入b:
call :pow %a% %b%
echo. %errorlevel%
pause>nul&exit 0
:: 返回 %1^%2 的值
:pow
setlocal
set ans=1
set "base=%~1"
set "index=%~2"
if %index% lss 0 (echo.错误:不支持负指数幂运算&exit /b -1)
:pow_loop
if "%index%"=="0" endlocal&exit /b %ans%
set /a "tmp=%index%&1"
if not "%tmp%"=="0" (set /a "ans=%ans%*%base%")
set /a "base=%base%*%base%"
set /a "index=%index%>>1"
goto :pow_loop
echo. 返回a^^b的值.
set /p a=请输入a:
set /p b=请输入b:
call :pow %a% %b%
echo. %errorlevel%
pause>nul&exit 0
:: 返回 %1^%2 的值
:pow
setlocal
set ans=1
set "base=%~1"
set "index=%~2"
if %index% lss 0 (echo.错误:不支持负指数幂运算&exit /b -1)
:pow_loop
if "%index%"=="0" endlocal&exit /b %ans%
set /a "tmp=%index%&1"
if not "%tmp%"=="0" (set /a "ans=%ans%*%base%")
set /a "base=%base%*%base%"
set /a "index=%index%>>1"
goto :pow_loop