Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 批量编程错误_Batch File - Fatal编程技术网

Batch file 批量编程错误

Batch file 批量编程错误,batch-file,Batch File,我只是想问一下,这个脚本的问题在哪里。每次我试图打开mns fight时,如果%lokace%==2如果%vyber2%==mns set lokace=3 set monstrum=1,它就会在上的某个地方崩溃 (顺便说一句,这是捷克的比赛,所以忽略名字) 全部代码: :hra cls if %lokace%==0 echo Vesnice-domov if %lokace%==1 echo Vesnice-namesti if %lokace%==2 echo DabluvLes if %l

我只是想问一下,这个脚本的问题在哪里。每次我试图打开mns fight时,如果%lokace%==2如果%vyber2%==mns set lokace=3 set monstrum=1,它就会在
上的某个地方崩溃
(顺便说一句,这是捷克的比赛,所以忽略名字)

全部代码:

:hra
cls
if %lokace%==0 echo Vesnice-domov
if %lokace%==1 echo Vesnice-namesti
if %lokace%==2 echo DabluvLes
if %lokace%==3 goto boj
echo mas %zivoty% hp
echo -----------------------------------
echo Co chces udelat?
if %lokace%==0 echo Jit na namesti [1]
if %lokace%==1 echo Jit domu [0]
if %lokace%==1 echo Jit do lesa [2]
if %lokace%==2 echo Najit monstrum [mns]
if %lokace%==2 echo Jit do vesnice [1]
if %lokace%==0 echo Vyspat se [spt]
set /p vyber2=Vyber si:
if %lokace%==1 if %vyber2%==0 set lokace=0
if %lokace%==0 if %vyber2%==1 set lokace=1
if %lokace%==1 if %vyber2%==2 set lokace=2
if %lokace%==0 if %vyber2%==spt if %zivoty% LSS %maxzivoty% set /a zivoty=%zivoty%+1
if %lokace%==2 if %vyber2%==mns set lokace=3 set monstrum=1
if %lokace%==2 if %vyber2%==1 set lokace=1
goto hra
:boj
if %monstrum%==1 set monstrumdmg=1  set monstrumhp=10
if %monstrumhp%==0 set lokace=2 set monstrum=0 goto hra
if %zivoty%==0 set lokace=0 goto hra
if %monstrumhp% GTR 0 if %monstrum%==1 echo Pavouk
echo Monstrum ma %monstrumhp% hp
echo Mas %zivoty% hp
echo Boj. Mas utok %damage% [boj]
echo Utek [utk]
set /p fight=Vyber si:
if %fight%==boj if %monstrum%==1 set /a monstrumhp=%monstrumhp%-%damage% set /a zivoty=%zivoty%-%monstrumdmg%
if %fight%==utk set lokace=2 set monstrum=0 goto hra
goto boj
应该是

set lokace=3&set monstrum=1
否则,
lokace
设置为
3 set monstrum=1

(代码中似乎有许多这样的错误)

应该是

set lokace=3&set monstrum=1
否则,
lokace
设置为
3 set monstrum=1


(代码中似乎有许多这样的错误)

您的问题:
set-lokace=3 set-monstrum=1
设置一个名为
lokace
的变量,其值为
3 set-monstrum=1

可能的解决办法:

a) 用
连接命令:

set lokace=3&set monstrum=1
(一种更好(更安全)的合成方式(避免出现杂散空间)是
设置“lokace=3”和设置“monstrum=1”

b) 使用代码块:

if %lokace%==2 if %vyber2%==mns (
  set "lokace=3"
  set "monstrum=1"
)
c)
set/a
可以同时设置多个变量(纯
set
不能),但所有值都必须是整数:

if %lokace%==2 if %vyber2%==mns set /a lokace=3, monstrum=1
例如
set-lokace=0 goto-hra的相同问题

谈到安全性:您应该将
if
比较的两边都用引号括起来,以避免出现空/未定义变量的语法错误:

if "%lokace%"=="2" if "%vyber2%"=="mns" ...

您的问题:
set-lokace=3 set-monstrum=1
将一个名为
lokace
的变量的值设置为
3 set-monstrum=1

可能的解决办法:

a) 用
连接命令:

set lokace=3&set monstrum=1
(一种更好(更安全)的合成方式(避免出现杂散空间)是
设置“lokace=3”和设置“monstrum=1”

b) 使用代码块:

if %lokace%==2 if %vyber2%==mns (
  set "lokace=3"
  set "monstrum=1"
)
c)
set/a
可以同时设置多个变量(纯
set
不能),但所有值都必须是整数:

if %lokace%==2 if %vyber2%==mns set /a lokace=3, monstrum=1
例如
set-lokace=0 goto-hra的相同问题

谈到安全性:您应该将
if
比较的两边都用引号括起来,以避免出现空/未定义变量的语法错误:

if "%lokace%"=="2" if "%vyber2%"=="mns" ...
研究示例:

:hra
ClS
如果“%lokace%”==“3”转到日本央行
如果“%lokace%”==“0”Echo Vesnice domov
如果“%lokace%”==“1”回显
如果“%lokace%”==“2”个回波数据
回音mas%zivoty%hp
回音-----------------------------------
Echo公司?
如果“%lokace%”==“0”(Echo Jit na nameti[1]&Echo Vyspat se[spt])
如果“%lokace%”==“1”(Echo Jit domu[0]&Echo Jit do lesa[2])
如果“%lokace%”==“2”(Echo-Najit-monstrum[mns]&Echo-Jit-do-vesnice[1])
设置/P“vyber2=Vyber si:”
如果“%lokace%%vyber2%”==“10”设置“lokace=0”
如果“%lokace%%vyber2%”==“01”设置“lokace=1”
如果“%lokace%%vyber2%”==“12”设置“lokace=2”
如果/I“%lokace%%vyber2%”如果%zivoty%Lss%maxzivoty%Set/A zivoty+=1,则=0spt
如果/I“%lokace%%vyber2%”设置为“2mns”/A lokace=3,则monstrum=1
如果“%lokace%%vyber2%”==“21”设置“lokace=1”
戈托赫拉
:日本银行
如果“%monstrum%”=1集/A monstrumdmg=1,则monstrumhp=10
如果“%monstrumhp%”=0(集合/A lokace=2,monstrum=0&GoTo hra)
如果“%zivoty%”=0(设置“lokace=0”和GoTo hra)
如果%monstrumhp%Gtr 0如果“%monstrum%”等于“1”Echo Pavouk
回音畸形ma%畸形hp%hp
回音Mas%zivoty%hp
呼应日本央行。Mas utok%伤害%[日本银行]
Echo-Utek[utk]
设置/P“战斗=Vyber si:”
如果/I“%fight%%monstrum%”==“boj1”设置/A monstrumhp-=伤害,zivoty-=monstrumdmg
如果/I“%fight%”=“utk”(设置/A lokace=2,monstrum=0和GoTo hra)
转到日本银行
研究示例:

:hra
ClS
如果“%lokace%”==“3”转到日本央行
如果“%lokace%”==“0”Echo Vesnice domov
如果“%lokace%”==“1”回显
如果“%lokace%”==“2”个回波数据
回音mas%zivoty%hp
回音-----------------------------------
Echo公司?
如果“%lokace%”==“0”(Echo Jit na nameti[1]&Echo Vyspat se[spt])
如果“%lokace%”==“1”(Echo Jit domu[0]&Echo Jit do lesa[2])
如果“%lokace%”==“2”(Echo-Najit-monstrum[mns]&Echo-Jit-do-vesnice[1])
设置/P“vyber2=Vyber si:”
如果“%lokace%%vyber2%”==“10”设置“lokace=0”
如果“%lokace%%vyber2%”==“01”设置“lokace=1”
如果“%lokace%%vyber2%”==“12”设置“lokace=2”
如果/I“%lokace%%vyber2%”如果%zivoty%Lss%maxzivoty%Set/A zivoty+=1,则=0spt
如果/I“%lokace%%vyber2%”设置为“2mns”/A lokace=3,则monstrum=1
如果“%lokace%%vyber2%”==“21”设置“lokace=1”
戈托赫拉
:日本银行
如果“%monstrum%”=1集/A monstrumdmg=1,则monstrumhp=10
如果“%monstrumhp%”=0(集合/A lokace=2,monstrum=0&GoTo hra)
如果“%zivoty%”=0(设置“lokace=0”和GoTo hra)
如果%monstrumhp%Gtr 0如果“%monstrum%”等于“1”Echo Pavouk
回音畸形ma%畸形hp%hp
回音Mas%zivoty%hp
呼应日本央行。Mas utok%伤害%[日本银行]
Echo-Utek[utk]
设置/P“战斗=Vyber si:”
如果/I“%fight%%monstrum%”==“boj1”设置/A monstrumhp-=伤害,zivoty-=monstrumdmg
如果/I“%fight%”=“utk”(设置/A lokace=2,monstrum=0和GoTo hra)
转到日本银行

选项c)的一个优点是,使用单个集合设置多个数值/a比多个集合语句快得多。这不是一个问题,但如果在一个紧密循环中处理多个集合,这可能很重要。选项c)的一个优点是,使用单个集合设置多个数值/a比使用多个集合语句快得多。这不是一个问题,但如果在一个紧密的循环中处理多个集合,这可能很重要。谢谢,你给了我另一种方法来实现这一点。我自己已经找到了一些。但是谢谢汉克斯,你给了我另一种方法。我自己已经找到了一些。但是谢谢我找到了我自己的方法来修复这个,但是这更容易,谢谢。我找到了我自己的方法来修复这个,但是这更容易,谢谢。