您好,我正在尝试在一个名为 Shorthand 的程序中使用 TCL,这是一个文本宏程序。无论如何,我正在尝试使用它来提示和重新格式化 Mac 地址。我无法弄清楚在指定索引整数处拆分字符串的函数。这是我到目前为止所拥有的。
set DirtyMac [sh_set clipboard]
set HalfMac [string map { . "" } $DirtyMac ]
set FullMac [string map { : "" } $HalfMac]
set ParsedMac [string map { " " "" } $FullMac]
if {[string length $ParsedMac] < 12 } {
return "Mac too short";
} elseif {[string length $ParsedMac] > 12 } {
return "Mac too long";
} else {
return [string map { " " "" } $ParsedMac]
}
那就是清除我一直在尝试的所有不需要的字符的Mac
set Mac1 [linsert $ParsedMac 4 .]
return $Mac1;
或者
set Mac1 [split [string is index $ParsedMac 4 ] "."]
return $Mac1;
没有任何工作......任何人都可以做的任何帮助都会很棒!
好的,所以我要做的是获取一个 Mac 地址,例如 11:22:33:44:55:66 或 1122.3344.5566 或 112233445566 并让输出采用这三种格式之一。我最终将编写 3 个不同的脚本,这些脚本将根据输出的需要被调用。
所以例如我有 mac 1122.3344.5566 我想把它变成 11:22:33:44:55:66
set DirtyMac "1122.3344.5566"
set ParsedMac [string map {. "" : "" " " ""} $DirtyMac]
scan $ParsedMac "%2s%2s%2s%2s%2s%2s" a b c d e f
set FullMac [join $a $b $c $d $e $f ":"]
return $FullMac;
或者
我有mac 112233445566 我想把它变成1122.3344.5566
set DirtyMac "112233445566"
set ParsedMac [string map {. "" : "" " " ""} $DirtyMac]
scan $ParsedMac "%2s%2s%2s%2s%2s%2s" a b c d e f
set FullMac [join $a $b $c $d $e $f ":"]
return $FullMac;
最后
我有mac 1122.3344.5566 || 11:22:33:44:55:66 我想把它变成112233445566
set DirtyMac | Mac Address Input|
set ParsedMac [string map {. "" : "" " " ""} $DirtyMac]
return $ParsedMac;