Batch file 在文本文档中查找重复mac地址的批处理文件

Batch file 在文本文档中查找重复mac地址的批处理文件,batch-file,text,Batch File,Text,我在努力。。我有一个包含很多mac地址的文本文件-我想做的是查找出现的任何重复mac地址。 任何帮助都将不胜感激。。向克雷格致意。假设一条线是这样的: 000000000944 000000000944 0 <client-mac>00:11:50:A0:BE:26</client-mac> 00000000094400000000000094400000:11:50:A0:BE:26 这应该做到: @echo off copy nul out.txt >nu

我在努力。。我有一个包含很多mac地址的文本文件-我想做的是查找出现的任何重复mac地址。
任何帮助都将不胜感激。。向克雷格致意。

假设一条线是这样的:

000000000944 000000000944 0 <client-mac>00:11:50:A0:BE:26</client-mac> 
00000000094400000000000094400000:11:50:A0:BE:26
这应该做到:

@echo off
copy nul out.txt >nul
for /f "tokens=3 delims=<>" %%i in (file.txt) do (
 find "%%i" out.txt>nul && (
  echo doublette: %%i>>out.txt 
 ) || (
  echo unique: %%i>>out.txt
 )
)
@echo关闭
复制nul out.txt>nul
对于/f“tokens=3 delims=”%(file.txt)中的%%i do(
查找“%%i”out.txt>nul&&(
echo Doublete:%%i>>out.txt
) || (
回显唯一:%%i>>out.txt
)
)
&&
的意思是:“如果errorlevel=0,则执行…”


|
表示:“如果errorlevel不是0,则执行…”

这可以在PowerShell中轻松完成:

get-content "test.dat" | select-string '((?:[0-9A-F]{2}:){5}[0-9A-F]{2})' | foreach-object {
  $_.Matches[0].Groups[1].Value
} | sort-object -unique | out-file "results.txt"
@echo关闭
setlocal EnableDelayedExpansion
(对于/F“tokens=3 delims=“%%a in(input.txt)do(
如果已定义macAddress[%%a](
回显重复的mac地址:%%a
)否则(
设置macAddress[%%a]=true
)
))>output.txt

除了mac地址之外,文件中还有其他内容吗?还是每行只有一个mac地址?你能展示一下这个文件的一个片段吗?另外,您需要在什么操作系统上执行此操作?脚本语言解决方案可以接受吗?最好是Hi-Batch。。行如下0000000009440000000094400000:11:50:A0:BE:2600000000158F00000000158F00:1E:2A:EA:69:4E000000001AE6000001AE600:26:5E:17:E4:B70000000000271B00000000271B00:1F:33:B5:66:D400000321D00000000321D00:26:5E:17:E4:B7所以我想做的是如果mac地址重复,我可以把它们放在另一个文本文档中或突出显示重复项
@echo off
setlocal EnableDelayedExpansion

(for /F "tokens=3 delims=<>" %%a in (input.txt) do (
   if defined macAddress[%%a] (
      echo Duplicated mac address: %%a
   ) else (
      set macAddress[%%a]=true
   )
)) > output.txt