【发布时间】:2024-01-11 04:28:02
【问题描述】:
我正在工作中的一些机器上使用 LAN 唤醒应用程序,并且我正在创建一个脚本以在实验室中对其进行测试。
不幸的是,该应用程序仅读取 MAC 地址(来自 .csv 文件)而没有连字符,并且为了检查机器是否已“唤醒”,需要 ping 机器。我找到了一种使用 ARP 的方法,但是,MAC 地址需要在其中包含连字符才能在 ARP 表中找到。
基本上,我需要能够在 MAC 地址中每两个字符(最好在脚本中)插入一个连字符,因此,转换如下:
XXXXXXXXXXXX -> XX-XX-XX-XX-XX-XX
脚本如下:
for /f %%a in (macaddresses.csv) do (
start "" wol.exe %%a
:: CONVERSION HERE
for /f "tokens=1,2,3 delims= " %%i in ('arp -a ^| find /i "%%a"') do (
ping %%i
if %errorlevel% EQU 0 (
echo MAC address %%a woken up.
set /a i+=1
) else (
echo MAC address %%a not woken up.
)
)
)
我到处搜索,只发现如何在字符串末尾或单词中添加或删除字符。
提前致谢!
【问题讨论】:
标签: batch-file for-loop command-line windows-7 command-prompt