我是批处理脚本的新手,我希望您对以下内容有所帮助: 我有一个文本文件,看起来像:
E8-40-F2-3C-2E-FD,w7-301
E8-40-F2-AC-D4-E0,w7-302
E8-40-F2-AB-D9-F6,w7-303
E8-40-F2-3C-2F-2D,w7-304
E8-40-F2-AB-D0-D7,w7-305
我的目标是搜索文件中是否存在MAC
地址,如果存在,则在属于此MAC的逗号后打印名称:
例如:我想查找E8-40-F2-AC-D4-E0
(它将表示为变量而不是字符串)
它将打印:w7-302
谢谢你的帮助 问候, 麦克
答案 0 :(得分:1)
未经过测试。您需要更改文件的路径:
@echo off
set mac_file=c:\mac_adr.txt
for /f "usebackq tokens=1* delims=," %%a in ("%mac_file%") do (
set "%%a=%%b"
)
for /f "tokens=2" %%a in ('arp -a') do (
if defined %%a (
set %%a
rem -- or
rem -- for /f "tokens=2 delims==" %%z in ('set %%a') do echo %%z
)
)
如果您只打印第二部分取消注释wX-XXX
行并注释rem --
set %%a
答案 1 :(得分:0)
您也可以使用findstr
:
@echo off
:: You can replace 'address' with your own variable name
set address=E8-40-F2-AC-D4-E0
:: You would have to replace 'C:\mac.txt' with the actual path
for /f "tokens=2 delims=," %%a in ('findstr /B /L "%address%" "C:\mac.txt"') do echo %%a
此解决方案速度更快,可以轻松修改,以包含多个文件,多个地址,并包含有关搜索结果的更多/更少详细信息。