如果mac不在list.txt上,如何获取PC的Mac地址并重新启动PC?我只有这个get 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%
答案 0 :(得分:0)
getmac
,并将结果通过findstr
传递给所需的网络适配器进行过滤。
ThisPCMAC
type
命令来获取通过list.txt
传递的findstr
文件的内容,以对ThisPCMAC
进行过滤。
FoundMAC
中。FoundMAC
,则您goto :norestart
FoundMAC
,则您goto :restart
:restart
中,您以必需的附加参数调用shutdown /r
shutdown /a
)致电/t 600
。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:\test\list.txt: Nothing to do. C:\test\RestartIfThisPCMACnotInList.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:\test\list.txt: Restarting... shutdown /r /f /t 600 /d p:00:00 Cancel restart with the following command: shutdown /a C:\test\RestartIfThisPCMACnotInList.bat ended. Press any key to continue . . .