Board logo

标题: [其他] 批处理如何提取ping指定域名返回结果中的ip [打印本页]

作者: 红烧猪蹄    时间: 2013-1-28 20:58     标题: 批处理如何提取ping指定域名返回结果中的ip

本帖最后由 pcl_test 于 2016-11-15 16:45 编辑

用ping命令,ping   www.baidu.com 得出的ip怎样通过批处理复制到粘贴板上!
作者: 白夜    时间: 2013-1-28 21:56

@echo off
ping  www.baidu.com>>temp.txt
clip<temp.txt
del /q temp.txt
echo 信息已经复制到粘贴板
pause
作者: 红烧猪蹄    时间: 2013-1-28 22:00

回复 2# 白夜


    额,大婶有点误会我的意思了,我是想将ping的ip复制过来,而不是所有信息
作者: 白夜    时间: 2013-1-28 22:31

回复 3# 红烧猪蹄
问题不就在那了么,这个容易
@ECHO OFF
for /f "skip=1 tokens=2 delims=[" %%a in ('ping  www.baidu.com') do (echo %%a)>>temp.txt
for /f "tokens=1 delims=]" %%b in (temp.txt) do (echo %%b)>>ip.txt
clip < ip.txt
echo ip已经复制到粘贴板
del /f /q "temp.txt"
del /f /q "ip.txt"
pause
作者: 白夜    时间: 2013-1-28 22:54

这种写法更好,你自己选择

@ECHO OFF
set var=
set /p var=输入要获取ip的网址:
for /f "skip=1 tokens=2 delims=[" %%a in ('ping  %var%') do (
   for /f "tokens=1 delims=]" %%b in ("%%a") do (
   echo %%b>>ip.txt
   )
)
cls
clip < ip.txt
echo ip地址已经复制到黏贴板
del /f /q "ip.txt"
pause
作者: yu2n    时间: 2013-1-29 10:00

这种写法更好,你自己选择

@ECHO OFF
set var=
set /p var=输入要获取ip的网址:
for /f "skip=1 tok ...
白夜 发表于 2013-1-28 22:54


我也来一个,不用临时文件,使用系统自带 mshta.exe 。
  1. @ECHO OFF
  2. Set host=
  3. Set ip=
  4. Set /p host=请输入要获取 ip 的主机名称:
  5. For /f "skip=1 tokens=2 delims=[" %%a in ('ping  %host%') do (
  6. For /f "tokens=1 delims=]" %%b in ("%%a") do (
  7. Set ip=%%b
  8. )
  9. )
  10. mshta javascript:window.clipboardData.setData('text',"%ip%");window.close();
  11. echo 主机 %host% 的IP地址 %ip% 已经复制到剪贴板!
  12. pause
复制代码

作者: 红烧猪蹄    时间: 2013-1-29 10:45

回复 4# 白夜


    就这个很不错,而且个人是ping固定域名的,所以这个更方便,不过因为要生成temp,所以效率有点慢,但是,还是谢谢大叔们的帮助!
作者: 红烧猪蹄    时间: 2013-1-29 10:49

回复 6# yu2n


    你的也很不错,而且不生成temp,但是要是遇上某些精简过的系统应该就不管用了吧!



ps:mshta.exe百科过,不过不知道是啥, 但是感觉好像不是很重要,所以有被精简的可能
作者: 白夜    时间: 2013-1-29 18:52

回复 7# 红烧猪蹄
我才25别叫我大叔
作者: BAT-VBS    时间: 2013-1-29 21:36

回复 9# 白夜


    也许楼主上小学
作者: 5fh    时间: 2016-12-19 22:21

@echo on & setlocal EnableDelayedExpansion
for /f "tokens=2 delims=[" %%i in ('ping g.cn -n 1 ') do set ip=%%i
for /f "tokens=2 delims=]" %%i in ('ping g.cn -n 1 ') do set tmp=%%i
set tmp=]%tmp%
字符串替换
set ip=%ip:%tmp%=%   '错误
变量ip替换tmp为空,不知为什么




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2