我似乎遇到了一个障碍,试图让批处理文件从用户输入的变量中减去一组数字。我有一个命令,用户输入一个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
任何帮助都将不胜感激。
答案 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()