SET /a var1 = var1 + 1 /a 未被识别为内部或外部命令

所以这是我的代码

IF %FIT% leq %FITLAST% set /a "MUTA=MUTA-1" ELSE set /A "MUTA=MUTA+1"

这是为AI设计的,它会检查这一代是否比上一代更适合,并调整重复相同特征或放大这些特征的可能性。别担心AI方面的问题,我已经用Java实现了这个功能,现在只是为了挑战将其移植到批处理脚本中,结果遇到了各种语法错误 xD

基本上,如果这一代的适应度低于或等于上一代,那么MUTA减1(减少重复相同行为的可能性)。如果这一代的适应度高于上一代,那么MUTA加1,这将增加重复相同行为的可能性。

问题在于它将/a视为一个独立的命令,显然无法识别,因为/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)pauseif %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语句,请在命令行中运行if /?

关于编辑部分。你不能使用><来表示大于或小于,你需要使用gtrlssequ等,并且在数字和括号之间要有空格。

if %num% lss 50 (

或者

if %num% gtr 50 (

请阅读if /?帮助,它显示:

其中比较操作符可以是以下之一:

EQU - 等于NEQ - 不等于LSS - 小于LEQ - 小于或等于GTR - 大于GEQ - 大于或等于

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注