Powershell: PSCore6- $ env:PROCESSOR_ARCHITECTURE変数にクロスプラットフォームがありません。

作成日 2018年05月09日  ·  3コメント  ·  ソース: PowerShell/PowerShell


$ env:PROCESSOR_ARCHITECTURE
これは、LinuxとMacOSPSCore6の両方にありません。

再現する手順

LinuxまたはMacOSPSCoreのいずれかで次のコマンドを実行しますが、変数がありません。

dir env:

予想される行動

この変数$ env:PROCESSOR_ARCHITECTUREが存在します


実際の動作

Windows以外のOSでは提供されていません。


環境データ

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"

マックOS:

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を設定するのはホストOSであり、PowerShellには新しい環境変数を設定しないという一般的な好みがあります(特にこれにより問題が発生する可能性があるため)。

明確にするために、Windowsでcmd.exeし、 echo %PROCESSOR_ARCHITECTURE%と入力すると、値が表示されます。 UNIXでbashに移動し、 echo $PROCESSOR_ARCHITECTUREと入力すると、デフォルトでは何も取得されません。 PowerShellは、それぞれのプラットフォームで同じことを行うことを目的としています。

全てのコメント3件

PowerShellは環境変数であるため、その設定の存在を制御しないと思います。 環境にPROCESSOR_ARCHITECTUREを設定するのはホストOSであり、PowerShellには新しい環境変数を設定しないという一般的な好みがあります(特にこれにより問題が発生する可能性があるため)。

明確にするために、Windowsでcmd.exeし、 echo %PROCESSOR_ARCHITECTURE%と入力すると、値が表示されます。 UNIXでbashに移動し、 echo $PROCESSOR_ARCHITECTUREと入力すると、デフォルトでは何も取得されません。 PowerShellは、それぞれのプラットフォームで同じことを行うことを目的としています。

完全を期すために、UNIXではuname -mを使用できるはずです( $PSVersionTableはこれをOS使用すると思います)。 プロセッサアーキテクチャを追跡するための内部変数を持つPowerShellについても議論があったかもしれません。

みんな、ありがとう!!
:)

このページは役に立ちましたか?
0 / 5 - 0 評価