Board logo

标题: [系统相关] 如何通过批处理的方式获取系统主机相关信息? [打印本页]

作者: xiaolijian916    时间: 2015-12-22 02:05     标题: 如何通过批处理的方式获取系统主机相关信息?

获取本机主机名,当前操作系统以及位数,当前系统登录用户,本机联网IP地址,本机物理内存,本机物理地址,本机网卡物理地址,
输入到控制台下效果:
  1. |-----------------------------------|
  2. |系统信息:                         |
  3. |                                   |
  4. |  主机名:IELDR-PC                 |
  5. |                                   |
  6. |  操作系统:Windows10_64bit        |
  7. |                                   |
  8. |  当前用户:Administrator          |
  9. |                                   |
  10. |  物理内存:7890M                  |
  11. |                                   |
  12. |  联网IP:192.168.1.102            |
  13. |                                   |
  14. |  物理地址:74-D0-1B-48-2D-46      |
  15. |                                   |
  16. |  网卡地址:20-16-E8-D5-E5-5F      |
  17. |-----------------------------------|
复制代码

作者: DAIC    时间: 2015-12-22 10:00

  1. echo 主机名:%computername%
复制代码
  1. echo 当前用户:%username%
复制代码
先来两个最简单的
作者: DAIC    时间: 2015-12-22 10:00

能否详细介绍一下你说的“物理地址”和“网卡地址”分别是在什么地方看到的?
作者: xiaolijian916    时间: 2015-12-22 15:40

回复 3# DAIC


    cmd: getMac 命令是获取物理地址的,我想单独提取出来显示两行。
作者: xiaolijian916    时间: 2015-12-22 16:05

回复 3# DAIC


    获取联网IP地址这个代码是这个,我想写成一行
  1. @echo off
  2. for /f tokens^=1^,2^ delims^=^"^" %%a in ('wmic nicconfig get IPAddress /value ^| findstr /i "IPAddress=[^]"') do (set "ip=%%b")
  3. echo %ip%&
  4. pause
复制代码

作者: DAIC    时间: 2015-12-23 13:46

回复 4# xiaolijian916
  1. @echo off
  2. for /f %%i in ('getmac ^| findstr ..-..-..-..-..-..') do (
  3.     echo 物理地址:%%i
  4. )
复制代码

作者: DAIC    时间: 2015-12-23 13:49

回复 5# xiaolijian916


这样算一行吗?
  1. for /f tokens^=1^,2^ delims^=^"^" %%a in ('wmic nicconfig get IPAddress /value ^| findstr /i "IPAddress=[^]"') do echo %%b
复制代码

作者: xiaolijian916    时间: 2015-12-23 20:52

回复 7# DAIC


    这样写不识别呀:
  1. ^| 联网IP:for /f tokens^=1^,2^ delims^=^"^" %%a in ('wmic nicconfig get IPAddress /value ^| findstr /i "IPAddress=[^]"') do echo %%b            ^|
复制代码

作者: xiaolijian916    时间: 2015-12-23 21:17

回复 7# DAIC
  1. @echo off&setlocal enabledelayedexpansion
  2. echo.--------------------------------------------
  3. echo.^|   联网IP:  ^|     call :get_inter_ip     ^|
  4. echo.--------------------------------------------
  5. pause
  6. REM 自定义批处理函数:获取本机物理地址
  7. :get_inter_ip
  8. for /f tokens^=1^,2^ delims^=^"^" %%a in ('wmic nicconfig get IPAddress /value ^| findstr /i "IPAddress=[^]"') do echo %%b
  9. goto :EOF
复制代码

作者: DAIC    时间: 2015-12-23 21:49

回复 9# xiaolijian916
  1. for /f tokens^=1^,2^ delims^=^"^" %%a in ('wmic nicconfig get IPAddress /value ^| findstr /i "IPAddress=[^]"') do (set "ip=%%b")
  2. echo.--------------------------------------------
  3. echo.^|   联网IP:  ^|     %ip%     ^|
  4. echo.--------------------------------------------
复制代码

作者: xiaolijian916    时间: 2015-12-23 22:49

回复 10# DAIC


    您好,我有多个IP地址,一个是无线WIFI的IP地址或宽带IP地址,还有个是虚拟WIFI的IP地址,或其他软件建立的网络连接,我只获取无线WIFI的IP地址或宽带IP地址怎么获取啊。能加你扣扣号吗,或者你加的扣扣3734368。
作者: DAIC    时间: 2015-12-24 21:49

回复 11# xiaolijian916


执行命令:
ipconfig /all > 1.txt

把1.txt压缩之后传上来
作者: xiaolijian916    时间: 2015-12-25 00:04

本帖最后由 xiaolijian916 于 2015-12-25 00:09 编辑

回复 12# DAIC


    这几个我全解决了。我是win10,用netstat -a 有时候出现如下所示提示:



下面是源代码:
  1. :scan-host
  2. REM ----------------------------------------------------------------------------------------->【扫描局域网所有主机】
  3. :设置允许获取局域网主机权限
  4. setlocal enabledelayedexpansion
  5. echo. ---------------------------------------------------------------------------------
  6. echo. ^|     《局域网主机信息列表》 ^|
  7. echo. ---------------------------------------------------------------------------------
  8. echo. ^|              主机名           ^|          IP地址          ^|           MAC地址       ^|
  9. echo. ---------------------------------------------------------------------------------
  10. for /f "skip=3 delims=\ " %%a in ('net view /cache') do (
  11.   set "host=%%a"
  12.   :判断命令是否执行完成,循环停止条件
  13.   echo %%a | findstr "命令成功完成" && goto end
  14.   set ip=
  15.   set mac=
  16.   for /f "tokens=2 delims=[]" %%b in ('ping -4 %%a -n 1 ^|find /i "ping %%a"') do set "ip=%%b"
  17.   for /f "tokens=4 delims= " %%c in ('nbtstat -a %%a ^|find /i "MAC 地址"') do set "mac=%%c "
  18.   if not defined ip set "ip=----------"
  19.   if not defined mac set "mac=-----------------"  
  20.   echo. ^|   !host:~-19! ^| !ip:~-19!    ^|   !mac:~-19! ^|
  21.   echo. ---------------------------------------------------------------------------------
  22. )
  23. :end
  24. echo.
  25. pause
  26. goto dosmenu
复制代码
若图片不显示,请在浏览器右键查看源代码,弹出界面找到我编辑的回复内容中找到百度云图片链接地址,打开就能看到。




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