需要批处理命令获取 mac 地址并在 txt 文件上进行比较?



如果 mac 不在列表中,如何获取 pc mac 地址并重新启动 PC,.txt?,我只有这个获取 mac 命令,

for /f "tokens=3 delims=," %%a in ('"getmac /v /fo csv | findstr Ethernet"') do set MAC=%%a 
echo MAC address of this computer is %MAC%
您可以使用
  1. getmac并通过findstr将结果通过管道来筛选所需的网络适配器。
    • 将结果存储到变量ThisPCMAC
  2. 您可以使用type命令通过管道获取list.txt文件的内容,findstr以筛选ThisPCMAC
    • 将结果存储到变量FoundMAC中。
  3. 如果定义了FoundMAC,则goto :norestart
  4. 如果未定义FoundMAC,则goto :restart
  5. :restart中,您可以使用所需的附加参数调用shutdown /r
  6. 如果弄错了,您可以在分配的时间内拨打shutdown /a电话(此处为 10 分钟,请参阅/t 600(。
  7. 有关进一步帮助,请参阅shutdown /?

这两个文件应位于同一目录中。list.txt示例内容:

FF-AA-BB-CC-DD-FA
FF-AA-BB-CC-DD-FB
FF-AA-BB-CC-DD-FC

RestartIfThisPCMACnotInList.bat内容:

@echo off
set ScriptPath=%~dp0
set ThisPCMAC=
set FoundMAC=
echo.
echo ScriptPath = %ScriptPath%

for /f "tokens=3 delims=," %%a in ('"getmac /v /fo csv | findstr Ethernet"') do set ThisPCMAC=%%a
echo.
echo MAC address of this computer is %ThisPCMAC%
for /F "usebackq delims==" %%b in (`"type %ScriptPath%list.txt | findstr %ThisPCMAC%"`) do set FoundMAC=%%b
if DEFINED FoundMAC (
goto :norestart
) else (
goto :restart
)

:norestart
echo.
echo Found %FoundMAC% in %ScriptPath%list.txt: Nothing to do.
goto :end

:restart
echo.
echo %ThisPCMAC% not found in %ScriptPath%list.txt: Restarting...
echo.
echo shutdown /r /f /t 600 /d p:00:00
shutdown /r /f /t 600 /d p:00:00
echo.
echo Cancel restart with the following command:
echo    shutdown /a
goto :end

:end
echo.
echo %~fp0 ended.
pause

:norestart的示例输出:

C:test>RestartIfThisPCMACnotInList.bat
ScriptPath = C:test
MAC address of this computer is "FF-AA-BB-CC-DD-FA"
Found FF-AA-BB-CC-DD-FA in C:testlist.txt: Nothing to do.
C:testRestartIfThisPCMACnotInList.bat ended.
Press any key to continue . . .

:restart的示例输出:

C:test>RestartIfThisPCMACnotInList.bat
ScriptPath = C:test
MAC address of this computer is "FF-AA-BB-CC-DD-FD"
"FF-AA-BB-CC-DD-FD" not found in C:testlist.txt: Restarting...
shutdown /r /f /t 600 /d p:00:00
Cancel restart with the following command:
shutdown /a
C:testRestartIfThisPCMACnotInList.bat ended.
Press any key to continue . . .

最新更新