批量数学命令不起作用

时间:2016-09-28 13:58:36

标签: batch-file

我似乎遇到了一个障碍,试图让批处理文件从用户输入的变量中减去一组数字。我有一个命令,用户输入一个IP地址,然后将其分隔为四个独立的八位字节,然后我需要从最后一个八位字节中减去19。无论我怎么设置它都回来了-19。我读到那个/ a不需要%但似乎没有任何帮助

asyncio

我也试过

echo. Enter IP address of the CSR on the site.
echo. Example: 11.152.34.82
set /p IP="IP Address: "
for /F "tokens=1,2,3,4 delims=." %%a in ("%IP%") do echo %%a, %%b, %%c, %%d
pause 
set /a z=d - 19
echo. %z%
pause

set /a z=%%d - 19
echo. %z%
pause

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:4)

捕获循环中的最后一个八位字节然后对该变量进行操作:

for /F "tokens=1,2,3,4 delims=." %%a in ("%IP%") do (
    echo %%a, %%b, %%c, %%d
    set last=%%d
)

set /a z=%last% - 19
echo z=%z%

答案 1 :(得分:1)

使用与我上次提出的最后一个问题类似的方法:

GeneralUtility::cmpIP()