Windows

WMIC 命令有效,但在 powershell 腳本中不起作用

  • January 8, 2016
#Get Data Rate
wmic "/OUTPUT:'C:\Users\user\Documents\DATE RATE\Data_Rate-ts8"+".txt" nic where 'NetEnabled = True' 'get Name,MacAddress,Speed'"

直接在控制台中執行它就可以了。那隻是因為在控制台中,我可以這樣做:

ps C:\>wmic
wmic:root\cli>/OUTPUT:"C:\Users\user\Documents\DATE RATE\Data_Rate-ts8"+".txt" nic netenabled ="True"
wmic:root\cli>exit
ps C:\>

在 powershell 腳本中,我不能簡單地先鍵入 WMIC,然後再鍵入命令的其餘部分,否則它會通過輸入 WMIC 提示符來中斷腳本,等待使用者鍵入並且不再執行腳本。

當我把它放在一個 powershell 腳本(第一個片段)中時,我不斷得到:

未找到別名

我嘗試了不同的引號組合。但是我上面發布的腳本專門給了我:

“/OUTPUT:‘C:\Users\user\Documents\DATE RATE TESTS\Data_Rate-ts8’+’.txt’ nic where ‘NetEnabled = True’ ‘get Name - Alias not found.

您確定要繼續使用 WMIC 嗎?如果您使用的是 powershell,您可能會發現使用本機 powershell cmdLets 來獲取相同的資訊更有用。

根據您對文件所做的操作,這可能允許您跳過該文件。您還可以將 WMI 查詢結果通過管道傳輸到 | foreach { }

get-wmiobject Win32_NetworkAdapter -filter 'NetEnabled = True' | select-object Name,MacAddress,Speed | format-list | out-file dataRate.txt

引用自:https://serverfault.com/questions/747538