求助,关于批处理字符串截取出错的问题

求助,关于字符串截取出错的问题::将一个十六进制的数转换成十进制@echooffif"%1"=="/?"goto:explainif"%1"==""goto:explai... 求助,关于字符串截取出错的问题

::将一个十六进制的数转换成十进制
@echo off
if "%1"=="/?" goto :explain
if "%1"=="" goto :explain
setlocal enabledelayedexpansion
set ver=%1
set temp=!ver!
set num=1

:label

set temp%num%=%temp:~1%
if not defined temp%num% goto :next
set temp=!temp%num%!
set /a num+=1
goto :label

:next

echo %num%
if %num% GEQ 6 echo Out of data! & pause>nul & exit
::===================================================
set TEMP=!ver:0,-1! & set snum=0 & set change=1
echo %TEMP%
echo %ver%
echo %TEMP:~-1%
::问题在此处,%TEMP:~-1% 没法读到倒数第一位,为什么?
::===================================================
for /l %%j in (1,1,%num%) do (
ping -n 1 127.0.0.1 >nul
echo !TEMP:~-1!
set /p var=%%j:
if "!TEMP:~-1!"=="a" set /a snum=snum+10*change & goto :else
if "!TEMP:~-1!"=="b" set /a snum=snum+11*change & goto :else
if "!TEMP:~-1!"=="c" set /a snum=snum+12*change & goto :else
if "!TEMP:~-1!"=="d" set /a snum=snum+13*change & goto :else
if "!TEMP:~-1!"=="e" set /a snum=snum+14*change & goto :else
if "!TEMP:~-1!"=="f" set /a snum=snum+15*change & goto :else
set /a snum=snum+!TEMP:~-1!*snum
set TEMP=!TEMP:~0,-1!

:else
set /a change=!change!*16
echo ===========!change!
echo ============!snum!
)
echo %1的转换结果是%snum%
pause>nul&goto :eof

:explain

cls&echo.&echo.
echo =====================================================
echo.
echo 十六进制向十进制转换
echo.
echo ——writed by Liuzl
echo.
echo.
echo 按任意键退出......
echo.
echo =====================================================
pause>nul&exit
::哪位高手能帮解决,感激不尽!
展开
 我来答
nefu_20061617
2010-09-03 · TA获得超过2342个赞
知道大有可为答主
回答量:1064
采纳率:72%
帮助的人:1467万
展开全部
有问题那句往前三行,
set TEMP=!ver:0,-1! & set snum=0 & set change=1
这句少了一个~符号,改成set TEMP=!ver:~0,-1!
第一个&符号前面不应有空格,否则这个空格会赋值给变量TEMP的最后一位。
你的代码可能还有其他问题,转换结果不正确。

批处理把十六进制的数转换成十进制很简单:
@echo off
set /a n=0x%1
echo %n%
pause
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式