2013-02-10 126 views
0

为什么这个工作:批处理文件格式?

set /a num = %random% %% 5 + 1 

if %num% == 1 set map=cs_assault 
if %num% == 2 set map=cs_italy 
if %num% == 3 set map=cs_office 
if %num% == 4 set map=de_aztec 
if %num% == 5 set map=de_bank 

srcds -game csgo -port 27016 -console +game_type 0 +game_mode 0 +mapgroup mg_casual +map %map% 

但是,这不?

set /a num = %random% %% 5 + 1 

if %num% == 1 set map = cs_assault 
if %num% == 2 set map = cs_italy 
if %num% == 3 set map = cs_office 
if %num% == 4 set map = de_aztec 
if %num% == 5 set map = de_bank 

srcds -game csgo -port 27016 -console +game_type 0 +game_mode 0 +mapgroup mg_casual +map %map% 

我似乎无法把我的大脑包裹在里面。

回答

2

因为第二个例子是创建一个名为变量,如果你要改变

srcds -game csgo -port 27016 -console +game_type 0 +game_mode 0 +mapgroup mg_casual +map %map% 

到“地图”不“地图”和值
“de_mapname”而不是“de_mapname”

所以

srcds -game csgo -port 27016 -console +game_type 0 +game_mode 0 +mapgroup mg_casual +map %map % 

它会工作,否则没有变量map

+0

这似乎很奇怪,我,但因为空间被允许等号这里的两边: '设置/ A NUM =%随机%%% 5 + 1' 那么,为什么它那里工作,但不低于? – 2013-02-10 00:29:08

+0

因为这是一个表达式,语法不同。 – 2013-02-10 00:31:31

+0

它伤害了我的大脑。不仅如此,它看起来很丑,我讨厌丑陋的代码。 – 2013-02-10 00:37:07