命令
systeminfo | find "System Type"
应该返回
System Type: x64-based PC
在命令提示符窗口和 PowerShell 中。
就我而言
/usr/bin/find: 'System Type': No such file or directory
因为,正如有人向我解释的那样https://github.com/MicrosoftDocs/WSL/issues/1025,我还有find
另一个赛格威就在我的路径上。
在这种情况下正确运行的是
systeminfo | c:\windows\system32\find.exe "System Type"
现在假设我想让它独立于系统所在的位置(比如,如果我想将此命令包含在某些针对粗心用户或类似用户的指南中)。我考虑调用
systeminfo | %SystemRoot%\system32\find.exe "System Type"
这在命令提示符中有效,但在 PowerShell 中无效。在后者中,我尝试过
systeminfo | $env:SystemRoot\system32\find.exe "System Type"
但这给出了错误
Expressions are only allowed as the first element of a pipeline.
.exe
如果我执行完整路径但没有:这个,我也会出现错误
systeminfo | c:\windows\system32\find "System Type"
给出
Cannot run a document in the middle of a pipeline: C:\windows\system32\find
我也试过
systeminfo | % $env:SystemRoot\system32\find.exe "System Type"
但这会产生大量错误,例如
% : Input name "C:\WINDOWS\system32\find.exe" cannot be resolved to a method.
发生了什么事?该如何正确处理?
答案1
你可以这样做:
systeminfo | & $env:SystemRoot\system32\find.exe "System Type"
请注意命令前的“与”符号。
但更好的方法是使用本机 PowerShell,而不是将非 PowerShell 输出通过管道传输到非 PowerShell 程序。
(Get-ComputerInfo -Property CsSystemType).CsSystemType