在批处理文件中运行PowerShell脚本

时间:2015-03-03 08:41:14

标签: powershell batch-file

我一直在尝试将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。

如果有人可以伸出援助之手,我们将不胜感激。

1 个答案:

答案 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地址,并回显它。所有输出都被发送到临时文件。