这是整个问题。我正在尝试读取计算机上给定适配器的 IP 地址,将最后一位数字减 1,然后将新 IP 地址添加为路由。到目前为止,我已经设法通过以下方式提取 IP 地址:
netsh interface ip show config name=15| findstr "IP Adress" > C:\ip.txt
for /f "tokens=2 delims=:" %%F in (c:\ip.txt) do echo %%F > c:\ipstripped.txt
for /f "tokens=2 delims=1" %%F in (C:\ipstripped.txt) do echo 1%%F >c:\ipdigits.txt
这给我一个文件,其中包含 IP 地址,但也有空格,并且可能在行尾有回车。然后我运行:
for /f "tokens=4 delims=." %%F in (C:\ipdigits.txt) do echo %%F >c:\lastdig.txt
这让我得到了一个文件,其中只有最后一个数字,但似乎还有额外的字符.. 那时,当我尝试运行时:
for /f "delims=" %%f in (c:\lastdig.txt) DO Set count=%%f
echo %count%
(
set /a %count%-=1
echo %count%
)
echo %count%> C:\decdigit.txt
它失败了,因为我猜,它正在从文件中加载 6 和空白字符等,此时它不能减少“count”变量,因为它不仅仅是一个数值。我已经得到它只返回最初读入的数字.. 或者它将返回“回声关闭”或其他各种东西,具体取决于我的尝试..
我正在寻找的只是足够的代码来加载和减少数字,或者如果您能想出一种更好的方法来提取和更改 IP 地址而无需我正在使用的所有步骤.. 那将作为好吧..我也不太熟悉上面列出的任何代码,只是简单地从那里的其他答案中抄袭了它..所以也许我只是错过了一些简单的东西,因为它对我来说没有那么大的意义。