cmd批处理文件怎么写调用txt里面的IP和计算名要怎么写,txt里面只有两行,一行IP,一行计算机名

查看: 11082|回复: 15
批处理bat实现扫描局域网所有机器IP、MAC地址和计算机名
本帖最后由 nb99 于
19:01 编辑
因需要统计本地局域网内所有机器的机器名、IP、MAC,所以写了个批处理实现此功能。提供出来给大家参考,使用方法:新建一个文本,复制下面的代码。将内网IP的前3位部分按自己的网络情况填写。保存为bat文件,比如:nb99.bat,然后直接执行,执行结束后会在同目录自动生成info.txt文件,所有机器的机器名、IP、MAC写在了里面。
@echo off&title 扫描MAC,IP,计算机名&color a&mode con: cols=60 lines=22
setlocal enabledelayedexpansion
echo.
echo&&============== 制作者:http://www.nb99.net ===============
echo.
echo& &&&扫描内网IP、MAC地址和计算机名,并保存到info.txt文件
echo.
echo&&================== 制作不易,请保留版权 ==================
echo.
:: iqp -& 内网IP的前3位,ip1 -& 起始ip,ip2 -& 结束ip
set ipq=192.168.0
set /a ip1=1
set /a ip2=255
set /a con=0
set /a contotal=%ip2%-%ip1%+1
echo& && &MAC& && && && && & IP& && & 计算机名 &info.txt
for /l %%i in (!ip1!,1,!ip2!) do (
& && &&&set ip=!ipq!.%%i
& && &&&echo 扫描!ip!
& && &&&ping !ip! -n 1 -w 1 &nul
& && &&&if !errorlevel! equ 0 (
& && && && && & for /f &tokens=1& %%j in ('nbtstat -a !ip! ^| find /i &UNIQUE& ^| find /i &00&') do set pcname=%%j
& && && && && & for /f &tokens=4 delims=* & %%j in ('nbtstat -a !ip! ^| find /i &MAC Address&') do set mac=%%j
& && && && && & echo !mac:~0,-1! !ip! !pcname! &&info.txt
& && && && && & set /a con=!con!+1
& && &&&)
)
echo 共%con%条记录 &&info.txt
echo 共扫描:%contotal%台机器,扫描到:%con%个有效记录&pause &nul
复制代码
感谢提供分享
学习了&&谢LZ
nb99 发表于
因需要统计本地局域网内所有机器的机器名、IP、MAC,所以写了个批处理实现此功能。提供出来给大家参考,使用 ...
可以用批处理实现扫描指定IP段端口并保存的功能么?
不错,试试看
很不错,正在扫描试用
试用一下!
头像被屏蔽
本帖最后由 种过一豆 于
20:57 编辑
还不错,学习了
& &&&MAC& && && && && & IP& && & 计算机名
~0,-1ippcname
~0,-1ippcname
正好对我非常有用。呵呵。
测试了,非常靠谱
Copyright & KaFan & All Rights Reserved.
Powered by Discuz! X3.1( 苏ICP备号 ) GMT+8,批处理取得计算机的计算机名、MAC、IP - 原创BAT代码 -
批处理之家 批处理_BAT_CMD_DOS_VBS_Perl_Python_PowerShell - Powered by Discuz!
帖子33&积分733&技术0 &捐助0 &注册时间&
批处理取得计算机的计算机名、MAC、IP
本来不敢献丑,看到有朋友发了一个查找本机的ip和mac,我也想发一个类似的程序。
这个程序的功能是将本机的mac、ip等信息以本机计算机名为文件名,发送到当前用户的桌面上。
我做这个程序的目的是,为了规范网络,已经让所有人把计算机名设为个人姓名,现在要收集mac,还想做到封装(不让无关的人接触这些内容),所以在网上把我这个程序发给每个人让他们运行一下,然后把生成的文件发给我。为了封装所有文件用tmp格式,其实用记事本打开就行。
每条命令都加了注解,运行时可以删去@echo off
::关闭显示
hostname &%temp%\temp1.temp
::将hostname命令的执行结果存放到临时文件中
for /f %%i in (%temp%\temp1.temp) do set p=%%i
::将临时文件中的hostname赋给变量P
ipconfig /all &%temp%\temp2.temp
::将ipconfig/all的结果存入临时文件
set r=&c:%HOMEPATH%\桌面&
::设置存放位置当前用户的桌面
if exist %r%\%p%.tmp del %r%\%p%.tmp
::删除桌面上已有的原来生成的结果文件
type %temp%\temp2.temp&%r%\%p%.tmp
::将临时文件中的ipconfig信息存入以计算机名为名字的
::临时文件中并将此文件放在当前用户桌面上
del %temp%\temp2.temp
del %temp%\temp1.temp
::删除作废的临时文件 复制代码
帖子346&积分3933&技术8 &捐助0 &注册时间&
hostname &%temp%\temp1.temp
::将hostname命令的执行结果存放到临时文件中
for /f %%i in (%temp%\temp1.temp) do set p=%%i
::将临时文件中的hostname赋给变量P复制代码可简化为for /f &delims=& %%i in ('hostname') do set p=%%i复制代码
还有“set FONT-SIZE: 16 FONT-FAMILY: 华文楷体&&桌面&”不太对吧。
[ 本帖最后由 yslyxqysl 于
18:22 编辑 ]
帖子33&积分733&技术0 &捐助0 &注册时间&
回复 2楼 的帖子
??怎么变成set FONT-SIZE: 16 FONT-FAMILY: 华文楷体&&桌面&”,可能是粘贴的时候出错了,我改过来
关于改进的代码,我还不知道in里可以加命令,学习了,这样果然好多了,谢谢
帖子3&积分171&技术0 &捐助0 &注册时间&
re:取得计算机的计算机名
在Server 08 上运行没有任何结果,只是弹出命令行窗口然后迅速关闭
printer-小祥
帖子33&积分733&技术0 &捐助0 &注册时间&
回复 4楼 的帖子
没有用过server08,可能是Server 08上面系统的当前用户的桌面路径和xp中不一样吧。
帖子8207&积分36898&技术175 &捐助510 &注册时间&
回复 4楼 的帖子
把@echo off删除
最后加一行pause
结果贴出来看看
【批处理在线视频分享】
【论坛捐助】
【论坛官方QQ群】BAT群:& &VBS群:
帖子2&积分13&技术0 &捐助0 &注册时间&
厉害…………
帖子4&积分26&技术0 &捐助0 &注册时间&
可以把所有代码简化为:
ipconfig/all &a.txt
试过了,结果和LZ的一样..
帖子9&积分129&技术0 &捐助0 &注册时间&
可以把所有代码简化为:
ipconfig/all &a.txt
试过了,结果和LZ的一样..
hyq912 发表于
[通过 QQ、MSN 分享给朋友][已解决]批处理根据MAC地址改计算机名、IP、掩码、网关、DNS - BAT求助&讨论 -
批处理之家 批处理_BAT_CMD_DOS_VBS_Perl_Python_PowerShell - Powered by Discuz!
帖子22&积分230&技术0 &捐助0 &注册时间&
[已解决]批处理根据MAC地址改计算机名、IP、掩码、网关、DNS
我对DOS不懂,只会些基本的命令,以下的代码谁能帮我精简下?
要能达到改计算机名,IP,掩码,网关,DNS就行,不用检查那么多网卡;删除临时文件和在“开始”菜单的“启动”中创建快捷方式我不需要那么多功能。而且此代码我保存为.BAT执行提示无效的本地连接??
或者哪个兄弟有时间帮重编个,谢谢。
下面还有2个批在附件里,想研究的拿去@ECHO OFF
@cls
ECHO ::::::::::::::::::::::::::::::::::::::::::::::::::::
ECHO :: GHOST完成后根据网卡MAC自动设置机名和IP的批处理 ::
ECHO ::::::::::::::::::::::::::::::::::::::::::::::::::::
::::清空环境变量
Set IPAddress=
Set strMac=
Set MacAddress=
Set CName=
Set scfile=
Set sc=
Set MacWMIC=
Set ConnName=
If not &%1&==&run& Goto setboot
cd/d %temp%
REM ::::请手动修改列表
ECHO [ComputerName] [MacAddress] [IPAddress] &iplist.txt
ECHO LX001 00-04-01-02-09-90 192.168.1.1 &&iplist.txt
ECHO LX002 00-04-01-02-09-91 192.168.1.2 &&iplist.txt
ECHO LX003 00-04-01-02-09-92 192.168.1.3 &&iplist.txt
ECHO LX004 00-04-01-02-09-93 192.168.1.4 &&iplist.txt
ECHO LXASP 00-03-FF-93-39-9F 192.168.0.10 &&iplist.txt
REM ::::请手动修改子网掩码
Set mask=255.255.255.0
REM ::::请手动修改默认网关
Set gway=192.168.0.1
ECHO :::: 开始查找网卡 ::::
::::获取机器的TCP/IP 配置
if exist ipconfig.txt del ipconfig.txt
ipconfig /all &ipconfig.txt
::::分离出机器的物理地址,并保存到 ( phyaddr.txt) 文件中
if exist phyaddr.txt del phyaddr.txt
if exist phyaddr1.txt del phyaddr1.txt
find &Physical Address& ipconfig.txt &phyaddr.txt
Set sc=1
Set scfile=phyaddr.txt
goto scan
::::多网卡时,扫描每个网卡MAC地址
:rescan1
Set sc=%sc%1
Set scfile=phyaddr1.txt
find /v &%strMac%& phyaddr.txt &%scfile%
Goto scan
:rescan2
Set sc=%sc%1
Set scfile=phyaddr.txt
find /v &%strMac%& phyaddr1.txt &%scfile%
Goto scan
:scan
::::从(c:\phyaddr.txt)文件中取得物理地址字符串,并赋给变量&MacAddress&
for /f &skip=2 tokens=12& %%M in (%scfile%) do set strMac=%%M
::::以变量&strMac&为关键字搜索(iplist.txt)中相同的字符串行,并保存到(PCCfg.txt)
find &%strMac%& iplist.txt &PCCfg.txt
::::找出机器名(从&PCCfg.txt&中分离出 机器名字段,并赋给变量&CName&)
for /f &skip=2 tokens=1& %%N in (PCCfg.txt) do set CName=%%N
if not &%CName%&==&& Goto found
::::支持最多扫描5个网卡
If &%sc%&==&11111& Goto failed
If &%sc%&==&1& Goto rescan1
if %scfile%==phyaddr.txt Goto rescan1
if %scfile%==phyaddr1.txt Goto rescan2
:found
ECHO 本机 MAC: %strMac%
ECHO 目标名称: %CName%
::::显示IP地址. (从&PCCfg.txt&中分离出 IP地址字段,并赋给变量&IPAddress&)
for /f &skip=2 tokens=3& %%I in (PCCfg.txt) do set IPAddress=%%I
ECHO 目标地址: %IPAddress%
::::显示网卡MAC地址.(从&PCCfg.txt&中分离出 MAC地址字段,并赋给变量&MacAddress&)
for /f &skip=2 tokens=2& %%M in (PCCfg.txt) do set MacAddress=%%M
ECHO 目标 MAC: %MacAddress%
::::创建注册表文件
::::用变量&%CName%&去替换实际的机器名
ECHO Windows Registry Editor Version 5.00 &PCName.reg
ECHO.&&PCName.reg
ECHO [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName] &&PCName.reg
ECHO &ComputerName&=&%CName%& &&PCName.reg
ECHO.&&PCName.reg
ECHO [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] &&PCName.reg
ECHO &NV Hostname&=&%CName%& &&PCName.reg
ECHO &Hostname&=&%CName%& &&PCName.reg
ECHO :::: 正在更改设置 ::::
REM ::::导入注册表文件。用的时候把& :: &去掉
regedit /s PCName.reg
::::找出MAC地址所对应的连接名称
for /f &tokens=1,2,3,4,5,6 delims=-& %%A in (&%MacAddress%&) do set MacWMIC=%%A:%%B:%%C:%%D:%%E:%%F
WMIC NIC WHERE &MACAddress='%MacWMIC%' AND NetConnectionID!=NULL& GET NetConnectionID /value &phyaddr.txt
WMIC NIC WHERE &MACAddress='%MacWMIC%' AND NetConnectionID!=NULL& GET NetConnectionID /value &phyaddr.txt
Type phyaddr.txt &phyaddr1.txt
for /f &skip=2 tokens=2* delims==& %%A in (phyaddr1.txt) do set ConnName=%%A
Echo 连接名称: %ConnName%
REM ::::修改IP地址。用的时候把& :: &去掉
netsh interface ip set address name=&%ConnName%& source=static addr=%IPAddress% mask=%mask% gateway=%gway% gwmetric=1
ECHO :::: 准备重启 ::::
setlocal
::::删除临时文件
echo [version] & ipdel.inf
echo signature=$chicago$ && ipdel.inf
echo [defaultinstall] && ipdel.inf
echo delfiles=delfiles1 && ipdel.inf
echo delfiles=delfiles2 && ipdel.inf
echo [destinationdirs] && ipdel.inf
echo delfiles1=16391 && ipdel.inf
echo delfiles2=01 && ipdel.inf
echo [delfiles1] && ipdel.inf
echo ip.lnk,,,1 && ipdel.inf
echo [delfiles2] && ipdel.inf
echo PCCfg.txt,,,1 && ipdel.inf
echo PCName.reg,,,1 && ipdel.inf
echo ipconfig.txt,,,1 && ipdel.inf
echo iplist.txt,,,1 && ipdel.inf
echo phyaddr1.txt,,,1 && ipdel.inf
echo phyaddr.txt,,,1 && ipdel.inf
RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultInstall 128 .\ipdel.inf
del ipdel.inf
::::准备重启的文件
echo [version] & reboot.inf
echo signature=$chicago$ && reboot.inf
echo [defaultinstall] && reboot.inf
REM ::::立即重启。用的时候把& :: &去掉
RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultInstall 1 .\reboot.inf
del reboot.inf
:setboot
Echo [Version] &ipstart.inf
Echo Signature=&$CHICAGO$& &&ipstart.inf
Echo [DefaultInstall] &&ipstart.inf
Echo UpdateInis = AddLink &&ipstart.inf
Echo [AddLink] &&ipstart.inf
Echo setup.ini, progman.groups,, &group1=&&%%16391%%&&& &&ipstart.inf
Echo setup.ini, group1,,&&&IP&&,&&&&&&%%01%%\ip.bat&&&& run&&,,,,&&&&,&&ip.bat&&& &&ipstart.inf
RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultInstall 128 .\ipstart.inf
del ipstart.inf
Echo 完成在“开始”菜单的“启动”中创建快捷方式。
Echo 请在此之后使用GHOST创建此分区的GHO镜像文件。
pause
:failed
ECHO !!!! 查找网卡失败 !!!!
:end 复制代码echo off
title 扫描即将开始  & && & 制作
color a
cls
echo.
echo& && && &&&------------------------------------------------------------
echo& && && && && && && && && && && &QQ:欢迎交流
echo.
echo& && && &   本批处理是扫描内网IP、MAC地址和计算机名的,并自动保存文件TXT文件
echo.& && && &     &&
echo& && && &   再利用“自动改IP.bat”实现自动改IP、计算机名、网络号、DNS、网关等
echo.& && && &    
echo& && && && &并自动安装冰点,将冰点改名为DF.exe,并保存在“自动改IP.bat”同目录下
echo.& && && &    
echo& && && && && && &为了扫描到的结果正确,请按照正确格式输入
echo.
echo& && && &&&---------------------PS:制作不容易,请保留版权----------------------
set /p gateway=请输入内网网关:
set /p dns1=请输入你的首选DNS:
set /p dns2=请输入你的备用DNS:
echo gateway %gateway% &info.txt
echo DNS1 %dns1% &&info.txt
echo DNS2 %dns2% &&info.txt
echo MAC& && && && && && &&& IP& && && &计算机名 &&info.txt
set rc=0
set /p ipq=请输入内网IP的前3位(如192.168.0):
set /p iph=请输入你要扫描的IP起始段(IP的最后一位):
set /p con1=请输入你要扫描的数量:
set /a con= %iph%+%con1%
:scan
set ip=%ipq%.%iph%
ping -n 1 -w 1 %ip% &nul
title 正在检测 %ip%  制作
if %errorlevel% GEQ 1 goto dz
for /f &tokens=1& %%i in ('nbtstat -a %ip% ^| find /i &UNIQUE& ^| find /i &00&') do set pcname=%%i
for /f &tokens=4& %%i in ('nbtstat -a %ip% ^| find /i &MAC Address&') do set mac=%%i
echo %mac% %ip%& &&&%pcname% &&info.txt
set /a iph=%iph%+1
set /a rc=%rc%+1
if %iph% GTR %con% goto end
goto scan
:dz
echo %ip%不在线,无法扫描!
set /a iph=%iph%+1
if %iph% GTR %con% goto end
goto scan
:end
title 扫描完毕  & && & 制作
echo    扫描完毕!!
@echo 共扫描%con%台PC。其中%rc%台PC在线!!
pause
echo off
for /f &tokens=2& %%i in ('findstr /r /i &dns1& info.txt')& &&&do Set dns1=%%i
for /f &tokens=2& %%i in ('findstr /r /i &dns2& info.txt')& &&&do Set dns2=%%i
for /f &tokens=2& %%i in ('findstr /r /i &gateway& info.txt')& &&&do Set gateway=%%i
for /f &tokens=2 delims=:& %%i in ('ipconfig /all ^| find /i &Physical Address&')& &&&do Set mac=%%i
for /f &tokens=2,3 & %%i in ('findstr /r /i &%mac%& info.txt') do set ip=%%i & set pcname=%%j
for /f &tokens=4,5 delims=. & %%i in ('findstr /r /i &%mac%& info.txt')& &&&do Set /a netkey=%%i+%%j
::判断本地连接 赋值lj
for /f &tokens=3 delims=: & %%i in ('ipconfig ^|findstr /r &adapter&') do set lj=%%i
@echo 本地连接名为:%lj%
@echo 本机IP为:%ip%
@echo 本机计算机名为:%pcname%
@echo 本机首选DNS为:%dns1%
@echo 本机备用DNS为:%dns2%
@echo 内网网关为:%gateway%
@echo 本地网络号为:%netkey%
@echo 正在修改IP等信息。。。。
ping 127.0.0.1 -n 2 &nul
netsh interface ip set address name=&%lj%& source=static addr=%ip% mask=255.255.255.0 gateway=%gateway%& &&&gwmetric=1
netsh interface ip set dns name=&%lj%& source=static addr=%dns1%
netsh interface ip add dns &%lj%& %dns2% index=2
REG add &HKLM\SYSTEM\CurrentControlSet\Services\NwlnkIpx\Parameters& /v VirtualNetworkNumber /t REG_DWORD /d %netkey% /f
::更改计算机名
reg add &HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName& /v ComputerName /t reg_sz /d %pcname% /f
REG add &HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters& /v &Hostname& /t REG_SZ /d %pcname% /f
REG add &HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters& /v &NV Hostname& /t REG_SZ /d %pcname% /f复制代码@echo off
color 0a
setlocal EnableDelayedExpansion
title 自动改IP,计算机名,批处理,新东方红网吧专用版 by 彬
set mask=255.255.255.0
set gateway=192.168.1.1
set DNS1=202.96.128.86
set DNS2=202.96.128.166
set DNS3=61.144.56.100
set DNS4=202.96.128.68
echo.
echo.& && && && && & 完成获取资料,请检查正确后按确认键开始执行修改任务
echo.
for /f &tokens=2 delims=:& %%M in ('ipconfig /all^|find /i &Physical Address&') do set Mac=%%M
echo.& && &&&本机 MAC地址:& && &&&%Mac%& && &&&(硬件获取)
set PCMAC=%MAC:~1%
echo.
for /f &tokens=1& %%a in ('type MAC.ini^|find /i &%PCMac%&') do (set pcname=%%a)
echo& && && &本机计算机名:& && &&&%pcname%& && && && && & (动态获取)
echo.
for /f &tokens=2& %%b in ('type MAC.ini^|find /i &%PCMac%&') do (set myip=%%b)
echo& && && &本机 IP 地址:& && &&&%myip%& && && && && & (动态获取)
echo.
echo.*************************************************************************
echo& && && &子网掩码:& && &&&%mask%& && && && && & (静态获取)
echo& && && &本机网关:& && &&&%gateway%& && && && && & (静态获取)
echo.& && &&&本机DNS1:& && &&&%DNS1%& && && && && & (静态获取)
echo.& && &&&本机DNS2:& && &&&%DNS2%& && && && && & (静态获取)
echo.& && &&&本机DNS3:& && &&&%DNS3%& && && && && & (静态获取)
echo.& && &&&本机DNS4:& && &&&%DNS4%& && && && && & (静态获取)
echo.
pause
echo& && && &修改计算机器名ing...
reg add &HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam& /v @ /t REG_SZ /d &%pcname%& /f
reg add &HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName& /v &ComputerName& /t REG_SZ /d &%pcname%& /f
reg add &HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ActiveComputerName& /v &ComputerName& /t REG_SZ /d &%pcname%& /f
reg add &HKLM\SYSTEM\CurrentControlSet\Services\Eventlog& /v &ComputerName& /t REG_SZ /d &%pcname%& /f
reg add &HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName& /v &ComputerName& /t REG_SZ /d &%pcname%& /f
reg add &HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters& /v &NV Hostname& /t REG_SZ /d &%pcname%& /f
reg add &HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters& /v &Hostname& /t REG_SZ /d &%pcname%& /f
echo.
echo 开始设置网卡 IP 地址,掩码,网关,DNS
netsh interface ip set address name=&本地连接& source=static addr=%myip% mask=%mask% gateway=%gateway% gwmetric=1
netsh interface ip set dns name=&本地连接& source=static addr=%DNS1%
netsh interface ip add dns name=&本地连接& addr=%DNS2% index=2
netsh interface ip add dns name=&本地连接& addr=%DNS3% index=3
netsh interface ip add dns name=&本地连接& addr=%DNS4% index=4
echo& && && && && && && && && && && &设置网卡 IP 地址,掩码,网关,DNS完成
echo.
ipconfig/all
echo.
pause
shutdown -r -t 0复制代码
帖子8207&积分36898&技术175 &捐助510 &注册时间&
所发代码若不止一行,请务必用code标记把代码部分首尾括起来,以便他人复制;
Q: 如何用code把代码扩起来?
【批处理在线视频分享】
【论坛捐助】
【论坛官方QQ群】BAT群:& &VBS群:
帖子22&积分230&技术0 &捐助0 &注册时间&
帖子22&积分230&技术0 &捐助0 &注册时间&
千心万苦又到了1帖,“一看就知道是我想要的”
可是运行了没效果,机器名改没了,IP没改动,还搞的断网了。可能是他给注册表没添加对东西的缘故吧
行家路过给指点指点....
@echo off
color 0a
setlocal EnableDelayedExpansion
title 根据MAC地址自动修改计算机名、IP地址、掩码、网关、DNS(批处理) By Netboy
set mask=255.255.255.0
set gateway=192.168.1.1
set DNS1=202.96.128.86
set DNS2=202.96.128.166
echo.
echo.& && && && &完成获取资料,请检查正确后按确认键开始执行修改任务
echo.*************************************************************************
echo.
for /f &tokens=2 delims=:& %%M in ('ipconfig /all^|find /i &Physical Address&') do set Mac=%%M
echo.& && &&&本机 MAC地址 (硬件获取):& && & %Mac%
set PCMAC=%MAC:~1%
echo.
for /f &tokens=1& %%a in ('type MAC.ini^|find /i &%PCMac%&') do (set pcname=%%a)
echo& && && &本机计算机名 (动态获取):& && &&&%pcname%
echo.
for /f &tokens=2& %%b in ('type MAC.ini^|find /i &%PCMac%&') do (set myip=%%b)
echo& && && &本机 IP 地址 (动态获取):& && &&&%myip%
echo.
echo.*************************************************************************
echo& && && &子网掩码 (静态获取):& && &&&%mask%
echo& && && &本机网关 (静态获取):& && &&&%gateway%
echo.& && &&&本机DNS1 (静态获取):& && &&&%DNS1%
echo.& && &&&本机DNS2 (静态获取):& && &&&%DNS2%
echo.
pause
echo& && && &修改计算机器名进行中...
reg add &HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam& /v @ /t REG_SZ /d &%pcname%& /f
reg add &HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName& /v &ComputerName& /t REG_SZ /d &%pcname%& /f
reg add &HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ActiveComputerName& /v &ComputerName& /t REG_SZ /d &%pcname%& /f
reg add &HKLM\SYSTEM\CurrentControlSet\Services\Eventlog& /v &ComputerName& /t REG_SZ /d &%pcname%& /f
reg add &HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName& /v &ComputerName& /t REG_SZ /d &%pcname%& /f
reg add &HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters& /v &NV Hostname& /t REG_SZ /d &%pcname%& /f
reg add &HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters& /v &Hostname& /t REG_SZ /d &%pcname%& /f
echo.
echo& && && &开始设置网卡IP地址、掩码、网关、DNS
netsh interface ip set address name=&本地连接& source=static addr=%myip% mask=%mask% gateway=%gateway% gwmetric=1
netsh interface ip set dns name=&本地连接& source=static addr=%DNS1%
netsh interface ip add dns name=&本地连接& addr=%DNS2% index=2
echo& && && &设置网卡IP地址、掩码、网关、DNS完成
echo.
ipconfig/all
echo.
pause
shutdown -r -t 3
下面这个就是你要搜集来的MAC地址,注意格式。
引用内容
[计算机名]& && &&&[IP地址]& && && && && & [MAC地址]
NB-100 192.168.0.100 00-E0-A0-0C-BD-56
NB-101 192.168.0.101 00-E0-A0-0E-D0-E4
NB-102 192.168.0.102 00-E0-A0-0E-DC-8C
NB-103 192.168.0.103 00-E0-A0-0C-B0-C4
复制代码说明:1、MAC地址可以通过各种工具收集(如:LanHelper)。
   2、set mask、set gateway、set DNS1、set DNS2 自己根据实际修改。
   3、如果还有DNS3、DNS4的话,自己在上面添加即可。
   4、如果要实现全自动操作,将批处理的pause去掉即可。
   5、批处理最后的 shutdown -r -t 3 是等待3秒后机子自动重启,自己根据实际需要修改
[ 本帖最后由 w3528033 于
21:42 编辑 ]
帖子22&积分230&技术0 &捐助0 &注册时间&
热心的强人,你在哪里??????
帖子620&积分6094&技术7 &捐助0 &注册时间&
根据 ipconfig/all 找出相应的数据,定义变量后再进行设置就好了。
帖子22&积分230&技术0 &捐助0 &注册时间&
ipconfig/all 不会用,举个例子吧,我好照猫画虎,呵呵
帖子620&积分6094&技术7 &捐助0 &注册时间&
直接修改 IP、掩码、网关、DNS,
“本地连接” 改为你自己的连接名字。
更改计算机名你采用 4 楼的所有 “reg add” 部分,与下面的合在一起就行了。@echo off
for /f &tokens=1* delims=:& %%i in (ip.ini) do set &%%i=%%j&
echo 正在更改 IP 等,请稍后……
netsh interface ip set address &本地连接& static %IP% %Mask% %Gateway% 1 1&nul
netsh interface ip set dns &本地连接& static %DNS% primary&nul
echo 更改 IP 完成。
pause&nul复制代码配置文件 ip.ini(自己修改其中的地址)& &&&IP:192.168.1.17
& &Mask:255.255.255.0
Gateway:192.168.1.1
& & DNS:192.168.1.3复制代码ipconfig/all 用于显示 IP 等信息,按你的要求应该是不需要用到。如果你不需要比对原来的 IP 等信息的话,直接用上面的来修改就行了。
帖子22&积分230&技术0 &捐助0 &注册时间&
太谢谢了,搞懂了!
还想请教下,怎么将INI文件内容追加进该BAT里。什么格式?
2个文件(INI和BAT)还得弄个文件夹放。要能合并成1个BAT就清爽了!呵呵
帖子8207&积分36898&技术175 &捐助510 &注册时间&
回复 9楼 的帖子
echo命令就是干这个用的@echo off
:::::::::::::::::::::::::::::::::::::
&ip.ini echo IP:192.168.1.17
&&ip.ini echo Mask:255.255.255.0
&&ip.ini echo Gateway:192.168.1.1
&&ip.ini echo DNS:192.168.1.3
:::::::::::::::::::::::::::::::::::::
for /f &tokens=1* delims=:& %%i in (ip.ini) do set &%%i=%%j&
echo 正在更改 IP 等,请稍后……
netsh interface ip set address &本地连接& static %IP% %Mask% %Gateway% 1 1&nul
netsh interface ip set dns &本地连接& static %DNS% primary&nul
echo 更改 IP 完成。
pause&nul复制代码
【批处理在线视频分享】
【论坛捐助】
【论坛官方QQ群】BAT群:& &VBS群:
帖子1733&积分8601&技术323 &捐助0 &注册时间&
下面的试试如何
你可以先 SET 你自己需要的@echo off&Setlocal Enabledelayedexpansion
set &name=youname&
reg add &HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\ActiveComputerName& /v ComputerName /t reg_sz /d %name% /f &nul 2&nul
reg add &HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters& /v &NV Hostname& /t reg_sz /d %name% /f &nul 2&nul
reg add &HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters& /v Hostname /t reg_sz /d %name% /f &nul 2&nul
set IP=192.168.0.2
set MASK=255.255.255.0
set GATEWAY=192.168.0.1
set DNS=192.168.0.1
netsh interface ip set address &本地连接& static %IP% %Mask% %GATEWAY% 1 &nul 2&nul
netsh interface ip set dns &本地连接& static %DNS% &nul 2&nul
pause复制代码
帖子22&积分230&技术0 &捐助0 &注册时间&
我是说是否能把事先准备好的MAC对应IP和机器名的INI文件的内容集合到BAT里,实现2合1,INI文件内容如下:
[计算机名]& && &[IP地址]& &&&[MAC地址]
NB-100 192.168.0.100 00-E0-A0-0C-BD-56
NB-101 192.168.0.101 00-E0-A0-0E-D0-E4
NB-102 192.168.0.102 00-E0-A0-0E-DC-8C
如4楼的BAT里要靠调用1个名为MAC.INI的配置文件才能根据已搜索到的MAC地址去自动修改IP,机器名
帖子1733&积分8601&技术323 &捐助0 &注册时间&
原帖由 w3528033 于
22:07 发表
我是说是否能把事先准备好的MAC对应IP和机器名的INI文件的内容集合到BAT里,实现2合1,INI文件内容如下:
NB-101 192.168.0.101 00-E0 ...
这样呢?
@echo off
set MASK=255.255.255.0
set GATEWAY=192.168.0.1
set DNS=192.168.0.1
for /f &tokens=12 delims= & %%i in ('ipconfig /all^|find /i &Physical Address&') do set mac=%%i
for /f &tokens=1,2*& %%i in ('ipconfig /all^|find &Ethernet adapter&')&&do set Ethernet=%%k
for /f &tokens=1,2& %%i in ('more /e +13 %0 ^|find /i &%mac:~,-1%&') do set &name=%%i&&set &IP=%%j&
reg add &HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\ActiveComputerName& /v ComputerName /t reg_sz /d %name% /f &nul 2&nul
reg add &HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters& /v &NV Hostname& /t reg_sz /d %name% /f &nul 2&nul
reg add &HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters& /v Hostname /t reg_sz /d %name% /f &nul 2&nul
netsh interface ip set address &%Ethernet:~,-2%& static %IP% %Mask% %GATEWAY% 1 &nul 2&nul
netsh interface ip set dns &%Ethernet:~,-2%& static %DNS% &nul 2&nul
pause&exit
NB-100 192.168.0.100 00-E0-A0-0C-BD-56
NB-101 192.168.0.101 00-1A-4D-9C-82-87
NB-102 192.168.0.102 00-E0-A0-0E-DC-8C复制代码
符合楼主要求PB + 1
帖子22&积分230&技术0 &捐助0 &注册时间&
强!!!完美了!!!
谢谢!!!!!!
帖子33&积分221&技术0 &捐助0 &注册时间&
@echo off
color 0a
setlocal EnableDelayedExpansion
set MASK=255.255.255.0
set GATEWAY=192.168.123.254
set DNS1=202.99.192.68
set DNS2=219.150.32.132
echo.
echo.& && && && &完成获取资料,请检查正确后按确认键开始执行修改任务
echo.*************************************************************************
echo.
for /f &tokens=12 delims= & %%i in ('ipconfig /all^|find /i &Physical Address&') do set mac=%%i
echo.& && &&&本机 MAC地址 (硬件获取):& && & %Mac%
for /f &tokens=1,2*& %%i in ('ipconfig /all^|find &Ethernet adapter&')&&do set Ethernet=%%k
for /f &tokens=1,2& %%i in ('more /e +13 %0 ^|find /i &%mac:~,-1%&') do set &name=%%i&&set
&IP=%%j&
echo& && && &本机 IP 地址 (动态获取):& && &&&%ip%
echo.
echo.*************************************************************************
pause
reg add
&HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\ActiveComputerName& /v
ComputerName /t reg_sz /d %name% /f &nul 2&nul
reg add &HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters& /v &NV
Hostname& /t reg_sz /d %name% /f &nul 2&nul
reg add &HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters& /v Hostname
/t reg_sz /d %name% /f &nul 2&nul
netsh interface ip set address &%Ethernet:~,-2%& static %IP% %Mask% %GATEWAY% 1 &nul
2&nul
netsh interface ip set dns &%Ethernet:~,-2%& static %DNS1% &nul 2&nul
netsh interface ip set dns &%Ethernet:~,-2%& static %DNS2% &nul 2&nul
pause&exit
NB-100 192.168.0.100 00-E0-A0-0C-BD-56
NB-101 192.168.0.101 00-1A-4D-9C-82-87
NB-105 192.168.1.102 00-e0-4d-a6-10-8f复制代码
综合一下。呵呵
[ 本帖最后由 6589600 于
01:13 编辑 ]
[通过 QQ、MSN 分享给朋友]}

我要回帖

更多关于 cmd批处理文件怎么写 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信