2015-03-03 155 views
0

我一直在試圖將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

回答

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地址,並對其進行回顯。所有的輸出都被髮送到一個臨時文件。

+0

感謝您的反饋。 Powershell字符串最初似乎更容易。我要使用你建議的代碼。多謝!由於我沒有足夠的廣告代碼,因此無法上傳您的帖子... +1:D – DecrepitSoldier 2015-03-03 09:31:17