命令
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/1025find
上向我解释的那样,我在cygwin中有另一个正在我的路上。
在这种情况下正常工作的是
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
:this
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.
到底是怎么回事?如何正确地做到这一点?
你可以这样做:
注意命令前的与号。
但更好的是,使用本机 PowerShell,而不是将非 PowerShell 输出通过管道传输到非 PowerShell 程序。