dos批处理问题:怎样从一个文本文档中提取一个数值作为变量?
我想要的其实就是ipconfig这里网关地址,把它拿出来作为新的变量使用以下是我的ip.txt文件内容:WindowsIP配置以太网适配器本地连接:连接特定的DNS后缀....
我想要的其实就是ipconfig这里网关地址,把它拿出来作为新的变量使用
以下是我的ip.txt文件内容:
Windows IP 配置
以太网适配器 本地连接:
连接特定的 DNS 后缀 . . . . . . . :
本地链接 IPv6 地址. . . . . . . . : fe80::d4da:cc35:6103:e766%11
IPv4 地址 . . . . . . . . . . . . : 192.168.1.101
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . : 192.168.1.210
我这已经写了一个批处理是获取自己的网关地址
@echo off
ipconfig/all |find "默认网关" >tmp.txt
FOR /F "tokens=15 delims= " %%i in (tmp.txt) do echo %%i
pause
del tmp.txt
我这样提取还要生成一个tmp.txt文件,好麻烦
怎样才能精确的定位到每一行每一列呢?
请各位大侠帮帮忙,把192.168.1.210给我抓出来
最好再给我一个直接在注册表里获取网关值的例子
我改动了一下
for /f "skip=10 tokens=1-3 delims=关,:" %%a in ('ipconfig') do echo %%c
得到如下结果
192.168.1.210
前面有个空格,怎么去掉?如果我想要中间的255.255.255.0怎么办? 展开
以下是我的ip.txt文件内容:
Windows IP 配置
以太网适配器 本地连接:
连接特定的 DNS 后缀 . . . . . . . :
本地链接 IPv6 地址. . . . . . . . : fe80::d4da:cc35:6103:e766%11
IPv4 地址 . . . . . . . . . . . . : 192.168.1.101
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . : 192.168.1.210
我这已经写了一个批处理是获取自己的网关地址
@echo off
ipconfig/all |find "默认网关" >tmp.txt
FOR /F "tokens=15 delims= " %%i in (tmp.txt) do echo %%i
pause
del tmp.txt
我这样提取还要生成一个tmp.txt文件,好麻烦
怎样才能精确的定位到每一行每一列呢?
请各位大侠帮帮忙,把192.168.1.210给我抓出来
最好再给我一个直接在注册表里获取网关值的例子
我改动了一下
for /f "skip=10 tokens=1-3 delims=关,:" %%a in ('ipconfig') do echo %%c
得到如下结果
192.168.1.210
前面有个空格,怎么去掉?如果我想要中间的255.255.255.0怎么办? 展开
展开全部
@echo off
for /f "delims=: tokens=2" %%i in ('ipconfig ^| findstr 默认网关') do set var=%%i
set var=%var: =%
echo %var%
看满足你的需求吗?
for /f "delims=: tokens=2" %%i in ('ipconfig ^| findstr 默认网关') do set var=%%i
set var=%var: =%
echo %var%
看满足你的需求吗?
追问
set var=%var: =%
echo %var%
这句是去空格的吧?能在多说一点吗
变量加“:”再加“=” 是什么意思?还有其他格式的功能吧,怎么查看这些功能
假如19 2. 16 8 .1.2 10 中间的空格也能去掉吧?
谢谢
我刚才看了一下set的说明
“ %PATH:~0,-2%
会提取 PATH 变量的所有字符,除了最后两个。”
有点思路了,不过我那些空格能去掉吧?
追答
嗯 你说的%var:~1,2% 这个是截取字符
像这样的%var: =% 是替换字符
比如 var=123
%var:123=abc% 这样就把123替换成abc了
展开全部
@echo off
for /f "tokens=1* delims=.: " %%i in ('ipconfig^|findstr/r "码 关"')do set %%i=%%j
echo %子网掩码% %默认网关%
pause
for /f "tokens=1* delims=.: " %%i in ('ipconfig^|findstr/r "码 关"')do set %%i=%%j
echo %子网掩码% %默认网关%
pause
追问
这些变量我看的好蒙 %%i=%%j %子网掩码% %默认网关%
貌似输入什么就能调用哪行的?好神奇
能简单说一下吗
谢谢
追答
findstr命令可以在ipconfig命令显示的内容里查找字符串,只要你找出需要的行中的特征字符串(甚至只需要一个字)就能仅列出所找的行,供for命令取舍,那么找到的是这两行:
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . : 192.168.1.210
如果用 . : 和空格分隔,比如第一行,第一节就是 子网掩码 剩下部分就是 255.255.255.0
那么 set %%i=%%j 等于就是 set 子网掩码=255.255.255.0
第二行道理相同
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for /f "skip=10 tokens=1-3 delims=关,:" %%a in ('ipconfig') do set addr=%%c
echo %addr:~1%
echo %addr:~1%
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是固定格式吧的?那么你就好处理了啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询