batch-file - SET /a var1 = var1 + 1 /a 不是内部或外部命令
问题描述
所以这是我的代码
IF %FIT% leq %FITLAST% set /a "MUTA=MUTA-1" ELSE set /A "MUTA=MUTA+1"
这是针对人工智能的,它会查看这一代是否比上一代更合适,并调整重复相同特征或放大它们的可能性。不要担心 AI 方面的声音我在 java 中做了这个我只是将它移到批处理中以应对挑战并且遇到各种语法错误 xD
本质上,如果这一代不太适合或同样适合上一代,则将 MUTA 减 1(减少重复相同动作的可能罩。如果这一代比上一代更适合,则将 MUTA 增加 1,这将增加可能的罩重复同样的动作。
问题在于它将 /a 视为自己的命令并且显然无法识别它,因为它只是 SET 语法的一部分。
编辑:这是回答^^^^
好的,我希望您也可以帮助我解决扩展代码中引起的问题:
IF "%FIT%" leq "%FITLAST%" (
set /a "MUTA=MUTA-1"
) ELSE (
set /A "MUTA=MUTA+1"
)
if %num%>50(
SET DIR=DOWN
if %num%>(50+%MUTA%) SET DIR=UP
)
pause
if %num%<50(
SET DIR=RIGHT
if %num%<(%MUTA%) SET DIR=LEFT
)
这不会返回任何内容,它只会关闭控制台,即使其中有 pause 命令。我在这里寻找一个答案,以纠正我错过的某些东西的不可避免的错误语法,而不是重新组织它来解决问题,因为这绝对只是我的语法错误。
解决方案
你用错了。你应该使用括号:
IF %FIT% leq %FITLAST% (
set /a "MUTA=MUTA-1"
) ELSE (
set /A "MUTA=MUTA+1"
)
要更好地理解该if
语句,请从 cmdline 运行if /?
在编辑上。您不能使用>
or<
更大/更小,因为您需要使用gtr
,等lss
,equ
并且在您的数字和括号之间有空格。
if %num% lss 50 (
或者
if %num% gtr 50 (
请阅读if /?
帮助,它显示:
其中 compare-op 可能是以下之一:
EQU - equal
NEQ - not equal
LSS - less than
LEQ - less than or equal
GTR - greater than
GEQ - greater than or equal
推荐阅读
- python - Matplotlib 单行子图
- html - overflow-x 隐藏内容(并且不能被覆盖)
- scala - 如何使用akka中的Source读取二进制avro fileData?
- javascript - 来自 nodejs 服务器的请求过多导致“连接 EADDRNOTAVAIL”
- google-forms - 如何在谷歌表单中创建定时测验
- amazon-web-services - AWS Lambda Nodejs 中无法导入模块错误
- javascript - 在模板内调用角度服务方法时如何修复“无法读取未定义的属性'...'”
- c++ - 有没有办法接受某些输入的第一个字母并检查它是否在某个列表中?
- javascript - 单击时防止触发焦点事件
- python - 如何根据python中的优先级列表选择列中的元素?