Ada alasan mengapa $ env: PROCESSOR_ARCHITECTURE ditinggalkan? Menurut saya berguna.
Ini hilang di Linux dan MacOS PSCore6.
Jalankan perintah berikut di Linux atau MacOS PSCore dan variabelnya hilang.
dir env:
Variabel $ env: PROCESSOR_ARCHITECTURE ini ada
Tidak tersedia di OS non-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"
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
Saya percaya bahwa, sebagai variabel lingkungan, PowerShell tidak mengontrol keberadaan pengaturan itu. Ini adalah OS host yang menetapkan PROCESSOR_ARCHITECTURE
di lingkungan, dan ada preferensi umum untuk PowerShell untuk tidak menetapkan variabel lingkungan baru (terutama karena ini berpotensi merusak banyak hal).
Agar jelas, masuk ke cmd.exe
di Windows dan ketik echo %PROCESSOR_ARCHITECTURE%
dan Anda akan melihat nilainya. Pergilah ke bash
di UNIX dan ketik echo $PROCESSOR_ARCHITECTURE
dan Anda tidak akan mendapatkan apa pun secara default. PowerShell bertujuan untuk melakukan hal yang sama di setiap platform masing-masing.
Hanya demi kelengkapan, di UNIX Anda harus dapat menggunakan uname -m
(menurut saya $PSVersionTable
menggunakan ini untuk OS
). Saya pikir mungkin ada beberapa diskusi tentang PowerShell yang memiliki variabel internal untuk melacak arsitektur prosesor juga.
Terimakasih semuanya!!
:)
Komentar yang paling membantu
Saya percaya bahwa, sebagai variabel lingkungan, PowerShell tidak mengontrol keberadaan pengaturan itu. Ini adalah OS host yang menetapkan
PROCESSOR_ARCHITECTURE
di lingkungan, dan ada preferensi umum untuk PowerShell untuk tidak menetapkan variabel lingkungan baru (terutama karena ini berpotensi merusak banyak hal).Agar jelas, masuk ke
cmd.exe
di Windows dan ketikecho %PROCESSOR_ARCHITECTURE%
dan Anda akan melihat nilainya. Pergilah kebash
di UNIX dan ketikecho $PROCESSOR_ARCHITECTURE
dan Anda tidak akan mendapatkan apa pun secara default. PowerShell bertujuan untuk melakukan hal yang sama di setiap platform masing-masing.