Powershell: PSCore6-$ env:PROCESSOR_ARCHITECTURE变量缺少跨平台。

创建于 2018-05-09  ·  3评论  ·  资料来源: PowerShell/PowerShell


为什么$ env:PROCESSOR_ARCHITECTURE被忽略了? 我认为是有用的。
Linux和MacOS PSCore6中都缺少此功能。

重现步骤

在Linux或MacOS PSCore中执行以下命令,该变量丢失。

dir env:

预期行为

此变量$ env:PROCESSOR_ARCHITECTURE存在


实际行为

在非Windows操作系统中未提供。


环境数据

CentOS的:

PS /home/maxt> cat /etc/os-release                                                                                                  
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

苹果系统:

Maximos-Mac:~ maxt$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.13.4
BuildVersion:   17E199
#CentOS
PS /home/maxt> $PSVersionTable                                                                                                      

Name                           Value
----                           -----
PSVersion                      6.1.0-preview.2
PSEdition                      Core
GitCommitId                    v6.1.0-preview.2
OS                             Linux 3.10.0-693.21.1.el7.x86_64 #1 SMP Wed Mar 7 19:03:37 UTC 2018
Platform                       Unix
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0
#MacOS
PS /Users/maxt> $PSVersionTable                                                                                         

Name                           Value
----                           -----
PSVersion                      6.1.0-preview.2
PSEdition                      Core
GitCommitId                    v6.1.0-preview.2
OS                             Darwin 17.5.0 Darwin Kernel Version 17.5.0: Mon Mar  5 22:24:32 PST 2018; root:xnu-45...
Platform                       Unix
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0
Issue-Question Resolution-Answered

最有用的评论

我相信,作为环境变量,PowerShell无法控制该设置的存在。 是在环境中设置PROCESSOR_ARCHITECTURE的主机操作系统,并且PowerShell普遍倾向于不设置新的环境变量(特别是因为这可能会破坏事情)。

为清楚起见,请在Windows上进入cmd.exe ,然后键入echo %PROCESSOR_ARCHITECTURE% ,您应该会看到该值。 在UNIX上进入bash并输入echo $PROCESSOR_ARCHITECTURE ,默认情况下您将不会得到任何东西。 PowerShell的目标是在每个平台上都做同样的事情。

所有3条评论

我相信,作为环境变量,PowerShell无法控制该设置的存在。 是在环境中设置PROCESSOR_ARCHITECTURE的主机操作系统,并且PowerShell普遍倾向于不设置新的环境变量(特别是因为这可能会破坏事情)。

为清楚起见,请在Windows上进入cmd.exe ,然后键入echo %PROCESSOR_ARCHITECTURE% ,您应该会看到该值。 在UNIX上进入bash并输入echo $PROCESSOR_ARCHITECTURE ,默认情况下您将不会得到任何东西。 PowerShell的目标是在每个平台上都做同样的事情。

仅出于完整性考虑,在UNIX上,您应该能够使用uname -m (我认为$PSVersionTable将此用于OS )。 我认为可能已经有一些关于PowerShell具有内部变量来跟踪处理器体系结构的讨论。

感谢大家!!
:)

此页面是否有帮助?
0 / 5 - 0 等级