はじめに
Powershell 7をインストールしてみた。
それだけ。
まとめ
- Powershell5.1と同居できる!
- 破壊的な変更が行われているため、5.1と7で使い分けができる。Powershell Core、6などが現環境にある人は破壊されてしまうようです。
- 私の環境だけかもしれませんが、Path変数の値が変だった。
やったこと
- まずは以下のURLを一読する。
なるほどなるほど… side by side… Zzz…?
- GitHubのページから、[Assets]セクションを開き、Powershellのインストーラーをダウンロードする。
Assetsの文字見づらい…。
私はPowerShell-7.1.0-preview.2-win-x64.msi
をインストールしました。
- ほぼ標準のままインストールする。
私はExplorerへのコンテキストメニューの追加のチェックを入れました。
インストール終わり!
Powershell 5.1と7の共存確認
よーし、まずはメニューから起動して、バージョンを見てみよう!
> $psversiontable
Name Value
---- -----
PSVersion 7.1.0-preview.2
PSEdition Core
GitCommitId 7.1.0-preview.2
OS Microsoft Windows 10.0.18363
Platform Win32NT
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0
おお…。
コマンドプロンプトを開き、powershell
と入力して、Powershell5.1で同様にバージョン確認しよう!
> $psversiontable
Name Value
---- -----
PSVersion 5.1.18362.752
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.18362.752
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
完全に環境がわかれてる!これは破壊的だけど、長い間Powershell 5.1で開発を続けてきた身としては安心できる!
ps1ファイルを実行すると、どっちで動く?
以下のファイルを準備しました。
$ver = $psversiontable
$ver.PSVersion
read-host
ファイルを右クリック→Powershellで実行を試してみました。
Major Minor Build Revision
----- ----- ----- --------
5 1 18362 752
右クリック→Powershellで実行だと、5.1の環境で動作する!
cmdからexeを指定して実行すると?
>powershell -command .\version_check.ps1
Major Minor Build Revision
----- ----- ----- --------
5 1 18362 752
良い感じ。
7からはpowershell.exeではなく、pwsh.exeに変わっているそう。
>pwsh -command .\version_check.ps1
'pwsh' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
…ん?パスが通ってない…?
ここでPCを一度再起動してみましたが変わりませんでした。
なんだか変だぞ。
パスを確認
PATHにはそれっぽい内容が追加されてる…?
$(get-childitem env:path).value
C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;
(省略)
C:\Program Files\PowerShell\7-preview\preview;
(省略)
フォルダーをたどって、pwsh.exeを探してみると…。
C:\Program Files\PowerShell\7-preview\pwsh.exe
にあった!
PATHの後ろのpreview
がいらないみたい。
PCのプロパティ→システムの詳細設定→環境変数→システムの環境変数→Path→編集→preview
を削除する。
コマンドプロンプト閉じて、もう一度pwshから実行。pwshって打ちづらくないですか
>pwsh -command .\version_check.ps1
Major Minor Patch PreReleaseLabel BuildLabel
----- ----- ----- --------------- ----------
7 1 0 preview.2
7で動いた!
-command
で動くあたりは変更が入ってないんだなー。(調べてからやれっていう突込みはなしで…)
基本的な使い方は踏襲されているみたい。
これから少しずつ7を触る機会を増やします!