windows 批次檔 擷取某一個字串(特定幾碼)

我想要利用批次檔擷取電腦裡的MAC 然後輸出成兩種格式

1. 16碼 (如: 00-11-22-33-44-55)
2. 前6碼 (如: 00-11-22)


但是問題來了,我利用findstr 去擷取getmac 會連後面的裝置識別碼一起擷取

例如(findstr "00-11-22" d:\mac.txt)
00-11-22-33-44-55 \Device\Tcpip_{92FBC6B1-70FD-492A-8099-A39EFB490082}
00-11-22-33-44-66 媒體已中斷連線

然後也不知道如何只截取前6碼

爬了很多文都沒有找到可用的方法
test.bat內容如下

@echo off
for /f "delims=" %%a in ('findstr %1 %2') do @set foobar=%%a
set foobar=%foobar:~0,17%
echo %foobar%


執行
C:\Users\1tac>test "00-11-22" mac.txt
00-11-22-33-44-55

若只要輸出 "00-11-22", 把批次檔裡面的17改成8

參考資料
下面的指令提供給你

1. 17碼 (如: 00-11-22-33-44-55)

(用 - 及 空白 分隔)
for /f "tokens=1,2,3,4,5,6 delims=- " %i in ('getmac /NH') do @echo %i-%j-%k-%l-%m-%n

(用 空白 分隔)
for /f "tokens=1,2 delims= " %i in ('getmac /NH') do @echo %i


2. 前8碼 (如: 00-11-22)

(用 - 及 空白 分隔)
for /f "tokens=1,2,3,4,5,6 delims=- " %i in ('getmac /NH') do @echo %i-%j-%k

for /F %%i IN ('getmac ^| find "00-11-22"') DO set macaddress=%%i
echo %macaddress:~0,8%

cutielemon1126 wrote:
我想要利用批次檔擷...(恕刪)


這裡真的是高手集散地

非常感謝三位的幫忙

這幾種方式剛剛測試都可以達成

cutielemon1126 wrote:
windows 批次檔 擷取某一個字串(特定幾碼)

留文備查.
☆ 私人訊息直接刪除不再回覆 ☆ 願望 : bovuhPPjMnEfkyhggnsJdABaLFPuhXT4
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!