iT邦幫忙

0

批次檔十六進位轉十進位的問題

cfox 2018-10-13 09:23:431605 瀏覽

參考了這裡的答案,寫出以下方式:

@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION

SET tempArray[0]=2F
SET tempArray[1]=36
SET tempArray[2]=2C
SET tempArray[3]=25

FOR /F "TOKENS=2 DELIMS==" %%i IN ('SET tempArray[') DO (
    ECHO %%i
    SET /A temperature=0x%%i
	ECHO %temperature%
)

得到的結果為:
2F
ECHO 已關閉。
36
ECHO 已關閉。
2C
ECHO 已關閉。
25
ECHO 已關閉。

由於 temperature 變數未取得值,導致最後只印出 ECHO 的設定。
請問 SET /A 那行為何會無效?應該怎麼修改呢?
謝謝

1 個回答

0
蟹老闆
iT邦大師 1 級 ‧ 2018-10-13 14:52:00
最佳解答

請參考

@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION

SET tempArray[0]=2F
SET tempArray[1]=36
SET tempArray[2]=2C
SET tempArray[3]=25

FOR /F "TOKENS=2 DELIMS==" %%i IN ('SET tempArray[') DO (
    ECHO %%i
    SET /A temperature=0x%%i
	ECHO !temperature!
)
cfox iT邦新手 3 級 ‧ 2018-10-13 15:01:09 檢舉

確實 %temperature% 換成 !temperature! 就可以了,
感謝您!

我要發表回答

立即登入回答