2013-02-10 127 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