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

问题描述:

我一直在试图将PowerShell脚本集成到批处理文件中,但我似乎在尝试这样做时遇到了一些错误。在批处理文件中运行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

为什么?只需直接运行PowerShell脚本即可。 – 2015-03-03 15:34:54

为什么不直接从批处理文件中解决它?

(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地址,并对其进行回显。所有的输出都被发送到一个临时文件。

+0

感谢您的反馈。 Powershell字符串最初似乎更容易。我要使用你建议的代码。多谢!由于我没有足够的广告代码,因此无法上传您的帖子... +1:D – DecrepitSoldier 2015-03-03 09:31:17