Board logo

标题: 如何判断系统的版本和求所有版本的ipconfig命令 [打印本页]

作者: yangzhiyi     时间: 2008-7-26 14:15    标题: 如何判断系统的版本和求所有版本的ipconfig命令

@echo off
for /F "tokens=3 delims= " %%i in ('ver') do (
if /i %%i==2000 set ipconfig=ipconfig_%%i.exe & goto start
if /i %%i==XP set ipconfig=ipconfig_%%i.exe & goto start
if /i %%i==2003 set ipconfig=ipconfig_%%i.exe & goto start
if /i %%i==Vista set ipconfig=ipconfig_%%i.exe & goto start
goto nover
)

:start
echo %ipconfig%
::%ipconfig% /all >ip.ini
goto end

:nover
echo 未知系统版本
goto end
:end
pause

我这样写的,还有更简单的方法吗?

你们谁有windwos 2003和Vista的系统,上传一个ipconfig.exe命令给我,顺便帮我试试这批是不是执行正常,感谢了!

我实际上是想ipconfig/all命令生成INI格式的文件,想了很久都不知怎么做,所以就修改ipconfig命令来生成。但是每个操作系统的ipconfig命令不通用的。
作者: HAT     时间: 2008-7-26 14:31


  Quote:
Microsoft Windows [Version 5.2.3790]
(C) Copyright 1985-2003 Microsoft Corp.

C:\>ver

Microsoft Windows [Version 5.2.3790]

Win2003 EE
作者: yangzhiyi     时间: 2008-7-26 14:41
晕, 这样我那批在2003就不能正常运行了,
帮我试试2003有没有 getmac 命令,麻烦上传一个ipconfig.exe命令给我,麻烦你了

[ Last edited by yangzhiyi on 2008-7-26 at 02:46 PM ]
作者: yangzhiyi     时间: 2008-7-26 14:44
5.0* 是win2000
5.1* 是winXP
5.2* 是win2003
5.3* 是win Vista ?
作者: HAT     时间: 2008-7-26 14:44
经测试,Win2003有getmac命令,ipconfig.exe无法在XP直接运行,需要dll文件的支持。
作者: yangzhiyi     时间: 2008-7-26 14:47
是啊,所以我才要每个系统版本的ipconfig命令啊
再帮我试试 getmac /v /fo csv /nh 结果是不是跟这差不多

"本地连接","Realtek RTL8139/810x Family Fast Ethernet NIC","00-0E-A6-CF-**-**","\Device\Tcpip_{7FC85BA4-3190-49BC-9CBA-B5AFFDCF339E}"
"本地连接 3","VNN VNC Adapter","06-00-9B-A0-06-00","媒体被断开"


即:"连接名","网卡","物理地址:,"传输名称"

[ Last edited by yangzhiyi on 2008-7-26 at 02:51 PM ]
作者: HAT     时间: 2008-7-26 14:48

net config work
Return Values

Value Operating System
NT40 Microsoft Windows NT 4.0
2000 Microsoft Windows 2000
2002 Microsoft Windows XP
2003 Microsoft Windows 2003
作者: HAT     时间: 2008-7-26 14:51
ipconfig_Win2003.zip

http://upload.cn-dos.net/img/642.zip
作者: HAT     时间: 2008-7-26 14:56


  Quote:
再帮我试试 getmac /v /fo csv /nh 结果是不是跟这差不多

"本地连接","Realtek RTL8139/810x Family Fast Ethernet NIC","00-0E-A6-CF-**-**","\Device\Tcpip_{7FC85BA4-3190-49BC-9CBA-B5AFFDCF339E}"
"本地连接 3","VNN VNC Adapter","06-00-9B-A0-06-00","媒体被断开"


即:"连接名","网卡","物理地址:,"传输名称"

是的,很类似,不过我这里是英文版的,呵呵。
作者: yangzhiyi     时间: 2008-7-26 14:58


  Quote:
Originally posted by HAT at 2008-7-26 14:51:
ipconfig_Win2003.zip

http://upload.cn-dos.net/img/642.zip

谢谢
作者: yangzhiyi     时间: 2008-7-26 15:27
改成这样不知行不行,vista 的版本号可能是 6.0.***
@echo off
ver | find "5.0" >nul && goto 2000
ver | find "5.1" >nul && goto xp
ver | find "5.2" >nul && goto 2003
ver | find "6.0" >nul && goto vista
goto nover
:2000
echo 2000
goto end

:xp
echo xp
goto end

:2003
echo 2003
goto end

:Vista
echo Vista
goto end

:nover
echo 未知系统版本
goto end

:end
pause

或者这样
@echo off
ver | find "5.0" >nul && (set ipconfig=ipconfig_2000.exe & goto start)
ver | find "5.1" >nul && (set ipconfig=ipconfig_xp.exe & goto start)
ver | find "5.2" >nul && (set ipconfig=ipconfig_2003.exe & goto start)
ver | find "6.0" >nul && (set ipconfig=ipconfig_vista.exe & goto start)
goto nover

:start
echo %ipconfig%
::%ipconfig% /all >ip.ini
goto end

:nover
echo 未知系统版本
goto end

:end
pause

[ Last edited by yangzhiyi on 2008-7-26 at 04:02 PM ]
作者: yangzhiyi     时间: 2008-7-27 22:35
求Vista 系统的ipconfig.exe 命令
作者: pusofalse     时间: 2008-7-28 01:53

for /f "tokens=3" %%a in ('ver') do set ipconfig=ipconfig_%%a.exe&goto start
goto nover
:start
echo %ipconfig%
::%ipconfig% /all >ip.ini
goto end
:nover
echo 未知系统版本
:end
pause

作者: yangzhiyi     时间: 2008-7-28 18:58


  Quote:
Originally posted by pusofalse at 2008-7-28 01:53:
[code]for /f "tokens=3" %%a in ('ver') do set ipconfig=ipconfig_%%a.exe&goto start
goto nover
:start
echo %ipconfig%
::%ipconfig% /all >ip.ini
goto end
:nover
echo 未知系 ...

2003版的ver Microsoft Windows [Version 5.2.3790] 没有2003字样,所以没用,我也只要那几个版本就行了,不过也从它学到了简单的得到是什么版本的系统方法了,每个系统版本应该都有[* *.*.***]的,我记得98的是4呢。就找.就行。

哎,今天找到的vista系统的ipconfig.exe了,打开看了一下,它没有信息表的了,所以没法改,这方法又没有用了。
作者: dosyenanjs     时间: 2008-7-28 19:58

@echo off&setlocal enabledelayedexpansion
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v CurrentVersion>%temp%\ver.txt
for /f "delims=" %%i in (%temp%\ver.txt) do (set/a n+=1&echo %%i>%temp%\!n!.txt)
for /f "tokens=3" %%i in (%temp%\!n!.txt) do (
       if %%i equ 6.0 echo Your system is vista
                               )

作者: yangzhiyi     时间: 2008-8-1 13:56


  Quote:
Originally posted by dosyenanjs at 2008-7-28 19:58:
[code]@echo off&setlocal enabledelayedexpansion
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v CurrentVersion>%temp%\ver.txt
for /f "delims=" %%i in ( ...

嘿嘿,win2000 没有reg命令