我一直在尝试将PowerShell脚本集成到批处理文件中,但在尝试这样做时我似乎遇到了一些错误。
到目前为止,这是我的代码:
for /F "tokens=* delims=," %%A in (C:\MACs.log) do (
@ECHO OFF
PowerShell.exe "& arp -a | select-string "%%A" |% {$_.ToString().Trim().Split(" ")[0]} >> C:\tempfile.log
好的,当我在PowerShell中运行此命令时,一切正常,但在批处理中我得到一些令牌错误。
此代码的主要帖子是从MACs.log创建一个循环,其中我有几个MAC地址,我想要IP地址并将它们输出到tempfile.log。
如果有人可以伸出援助之手,我们将不胜感激。
答案 0 :(得分:1)
为什么不直接从批处理文件中解决它?
(for /f %%a in ('
arp -a ^| findstr /l /i /g:"c:\MACs.log"
') do @echo %%a) > c:\tempfile.log
内部管道命令将执行arp
并使用MACs.log
中的mac地址过滤其输出。此列表由for /f
命令处理,该命令将检索行中的第一个标记(默认行为),即IP地址,并回显它。所有输出都被发送到临时文件。