“^”符号在我的批处理文件中无法正常工作

“^”符号在我的批处理文件中无法正常工作

因此我创建了一个批处理文件,但每次都会出现错误“括号不平衡”。

@echo off
:top
cls
echo.
echo =========================
echo + -=-=-=-=-=-=-=-=-=-=- +
echo =========================
echo.
echo.
set /p X=Insert drop chance (1 percent = 1, 5 percent = 5):
echo.
set /p Y=Insert attempt count:
echo.
echo.
echo.
set /A A=(X / 100)
set /A B=(Y / 100)
set /A Q=(( 1 - ( 1 - A ^ B )) * 100)
echo ------------------------------------------------------------------------------
echo (1 - ((1 - (DROP CHANCE %X% / 100)) ^ (ATTEMPTS %Y% / 100) * 100 = %Q%
echo ------------------------------------------------------------------------------
echo.
echo 1 for copy, 2 for reset, 3 to close.
@CHOICE /C:123
IF ERRORLEVEL 3 EXIT
IF ERRORLEVEL 2 GOTO top
IF ERRORLEVEL 1 GOTO copy
echo.
:copy
echo %Q% | clip
pause
goto :top

错误出现在“/AQ=(( 1 - ( 1 - A ^ B )) * 100)”

请帮忙,我非常困惑为什么它不起作用。

答案1

问题在于^标志。作为操作员,这是按位异或(而不是to the power of)或行继续符或转义符

您可以按照如下方式修复有问题的行:

set /A "Q=(( 1 - ( 1 - A ^ B )) * 100)"

或者:

set /A Q=(( 1 - ( 1 - A ^^ B )) * 100)

从你的公式来看,我认为你正在寻找exponent函数而不是bitwise-XOR。此功能在 Windows 批处理文件中不可用,但有一种解决方法这里

相关内容