Powershell: PSCore6 - $ env: variable PROCESSOR_ARCHITECTURE manquante cross-plateforme.

Créé le 9 mai 2018  ·  3Commentaires  ·  Source: PowerShell/PowerShell


Une raison pour laquelle le $ env: PROCESSOR_ARCHITECTURE a été
Ceci est absent à la fois dans Linux et MacOS PSCore6.

Étapes à suivre pour reproduire

Exécutez la commande suivante sous Linux ou MacOS PSCore et la variable est manquante.

dir env:

Comportement attendu

Cette variable $ env: PROCESSOR_ARCHITECTURE existe


Comportement réel

Non fourni dans un système d'exploitation non Windows.


Données d'environnement

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"

MacOS:

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

Commentaire le plus utile

Je crois que, étant une variable d'environnement, PowerShell ne contrôle pas l'existence de ce paramètre. C'est le système d'exploitation hôte qui définit PROCESSOR_ARCHITECTURE dans l'environnement, et PowerShell a généralement préféré ne pas définir de nouvelles variables d'environnement (d'autant plus que cela peut potentiellement casser les choses).

Pour être clair, allez dans cmd.exe sous Windows et tapez echo %PROCESSOR_ARCHITECTURE% et vous devriez voir la valeur. Allez dans bash sous UNIX et tapez echo $PROCESSOR_ARCHITECTURE et vous n'obtiendrez rien par défaut. PowerShell vise à faire de même sur chaque plate-forme respective.

Tous les 3 commentaires

Je crois que, étant une variable d'environnement, PowerShell ne contrôle pas l'existence de ce paramètre. C'est le système d'exploitation hôte qui définit PROCESSOR_ARCHITECTURE dans l'environnement, et PowerShell a généralement préféré ne pas définir de nouvelles variables d'environnement (d'autant plus que cela peut potentiellement casser les choses).

Pour être clair, allez dans cmd.exe sous Windows et tapez echo %PROCESSOR_ARCHITECTURE% et vous devriez voir la valeur. Allez dans bash sous UNIX et tapez echo $PROCESSOR_ARCHITECTURE et vous n'obtiendrez rien par défaut. PowerShell vise à faire de même sur chaque plate-forme respective.

Par souci d'exhaustivité, sous UNIX, vous devriez pouvoir utiliser uname -m (je pense que $PSVersionTable utilise pour OS ). Je pense qu'il y a peut-être eu des discussions sur PowerShell ayant une variable interne pour suivre l'architecture du processeur également.

Merci tout le monde!!
:)

Cette page vous a été utile?
0 / 5 - 0 notes