-1
我試圖破譯一個批處理文件,並有是我無法左右環繞我的頭代碼的某一部分:批處理文件subraction /替代
for /f "tokens=*" %%A in ('getmac') do set "macaddr1=%%A"
echo %macaddr1
for /f "tokens=1" %%A in ("%macaddr1%") do set "macaddr1=%%A"
set "macaddr1=%macaddr1:-=%"
從我所收集,這一段代碼運行「getmac」命令,然後遍歷並設置每行,並將變量v設置爲等於%a,這是getmac命令的每一行。
由於運行getmac命令返回的不僅僅是MAC地址,第二行似乎正在經歷並告訴它做同樣的事情,但這次只分配行的第一部分(這是MAC地址在
XX-XX-XX-XX-XX-XX「的格式。最後一部分是我無法理解的部分。它說
set "macaddr1=%macaddr1:-=%"
從我所收集,這是莫名其妙地剝out「 - 」格式,只留下XXXXXXXXXXXX格式的mac地址。
據我所知,在有一個替代算子,並根據設置的命令 - =應該是「減」變量,並且整件事在%%內我想我不會不理解這部分。它如何知道減去破折號?
還是我看着這完全錯了?
它不適用於減法運算,它是帶有SET/A的算術運算符。現在做的是一個字符替換,即用**或** **字符替換** - **字符,這取決於哪個語句不是您的問題中的拼寫錯誤。 – Compo
'-'不是「減」,而是「搜索」字符串。完整格式爲'%VARIABLE:search = replace%'。這裏搜索'-',並用空字符串替換。 – TripeHound