【发布时间】:2021-08-16 18:03:16
【问题描述】:
wmic 与 powershell 顺序的子命令。 (“wmic”然后下一行“csproduct”,我已经粘贴在powershell中。csproduct没有作为子命令粘贴在powershell中。
【问题讨论】:
标签: powershell
wmic 与 powershell 顺序的子命令。 (“wmic”然后下一行“csproduct”,我已经粘贴在powershell中。csproduct没有作为子命令粘贴在powershell中。
【问题讨论】:
标签: powershell
您正在粘贴多行行,这些行单独执行:
首先,wmic 单独执行,立即使其进入wmicREPL,您可以在其中以交互方式提交命令.
只有 之后 PowerShell - 在wmic REPL 处于活动状态时不受控制 - 尝试粘贴另一行 csproduct;也就是说,您会看到在退出 REPL 后粘贴了这个词,通常是 exit。
要简单地执行csproduct 子命令,请将wmic 和csproduct 放在相同 行并粘贴:wmic csproduct
这将使wmic 执行子命令,返回其输出,然后退出,将控制权返回给 PowerShell。
如果您的意图是提供多个子命令,通过字符串或文件:
'csproduct', 'context' | wmic
'csproduct', 'context' > subcmds.txt
Get-Content subcmds.txt | wmic
但是,请注意,这会在每个子命令之前以及最后一次打印 REPL 提示符,因此您可能需要执行 单独wmic调用,在ForEach-Object的帮助下:
Get-Content subcmds.txt | ForEach-Object { wmic $_ }
后退一步:
Get-CimInstance,因为它返回objects 而不是text ;从技术上讲,wmic 已弃用 - 请参阅 this answer。【讨论】:
或者这在powershell中是一样的,csproduct是win32_computersystemproduct的wmic类别名,你会得到一个对象输出而不是文本。
get-ciminstance win32_computersystemproduct
IdentifyingNumber : ABCDEFG
Name : 4321AB5
Vendor : LENOVO
Version : ThinkCentre M92z
Caption : Computer System Product
【讨论】: