- @echo off
- setlocal enabledelayedexpansion
- ::提取本地mac
- for /f "tokens=1-2 delims=:" %%a in ('ipconfig /all ^| findstr "Physical Address"') do (
- echo %%b>>localmac.txt
- )
- ::从mac主机名表中查找本地mac表中的对应信息并生成新文件
- findstr /g:localmac.txt machost.txt >>temp.txt
- ::判断此生成文件是否为空,不为空则提取相应的文字做主机名
- for /f "delims=" %%e in ('dir /b temp.txt') do (
- if %%~zi equ 0 (echo 大小为零 | pause) else (
- ::若找到与本机mac对应信息,则输出对应主机名
- for /f "tokens=1-2 delims= " %%m in (temp.txt) do (
- set name=%%m
- )
- )
- reg add "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\ComputerName\ComputerName" /v "ComputerName" /d "!name!" /f
- reg add "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Parameters" /v "NV Hostname" /d "!name!" /f
- reg add "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Parameters" /v "Hostname" /d "!name!" /f
- reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName" /v "ComputerName" /d "!name!" /f
- reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" /v "NV Hostname" /d "!name!" /f
- reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" /v "Hostname" /d "!name!" /f
复制代码 我做这个批处理的目的是提取本机mac地址并与machost.txt里面如下内容做对应
JSZX1-2 00-01-6C-51-A1-26
JSZX2-1 00-21-97-CE-6E-84
JSZX3 00-01-6C-51-9E-9C
JSZX6-1 74-27-EA-AE-98-86
已达到获取指定计算机名的目的.
为什么我的代码双击执行没问题,但想让系统自启动执行时会提示“FINDSTR: 无法打开machost.txt”
请各位高人指点! |