====== PowerShell(Windows) ====== [[linux:powershell|PowerShell - Linux]]\\ \\ 本家: [[https://docs.microsoft.com/ja-jp/powershell/|PowerShell Documentation | Microsoft Docs]]\\ ソースコード: [[https://github.com/PowerShell/PowerShell|GitHub - PowerShell/PowerShell: PowerShell for every system!]]\\ function curlGet($url) { $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET'); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 証明書の検証を行わない curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); // curl_execの結果を文字列で返す $response = curl_exec($curl); curl_close($curl); return $response; } //$url = 'https://api.github.com/repos/PowerShell/PowerShell/tags'; $url = 'https://github.com/PowerShell/PowerShell/releases'; //$res = curlGet($url); //$tags = json_decode($res, $assoc=TRUE); //$lines = explode("\n", $res); /* $dom = new DOMDocument; @$dom->loadHTMLFile($url); $xpath = new DOMXPath($dom); $xpath = $xpath->query('//div[contains(@class, "release-entry")]'); var_dump($xpath); $html = array_map( function ($node) use ($xpath) { return [ 'html' => $xpath->saveHTML($node) ]; }, $xpath->query('//span[@class="css-truncate-target"]')); var_dump($html); */ echo '最新バージョン: v7.3.6'.$lines[0]; \\ {{windows:powershell_v7.3.6.png?470|PowerShell}}\\ **PowerShell** (パワーシェル)は、マイクロソフトが開発した拡張可能なコマンドラインインターフェース (CLI) シェルおよびスクリプト言語である。オブジェクト指向に基づいて設計されており、.NET Frameworkと.NET Coreを基盤としている。\\ かつては Microsoft Shell (MSH、コードネーム Monad) と呼ばれていた。\\ Windows 7 以降のオペレーティングシステム (OS) には標準で搭載されている。\\ ===== インストール ===== [[windows:scoop|Scoop]] によるインストール\\ dorado バケットを追加する😉\\
PS > scoop bucket add dorado https://github.com/chawyehsu/dorado
Checking repo... ok
The dorado bucket was added successfully.
**PowerShell** のインストール\\
PS > scoop install powershell
Installing 'powershell' (7.3.6) [64bit]
PowerShell-7.3.6-win-x64.zip (102.9 MB) [=====================================================================] 100%
Checking hash of PowerShell-7.3.6-win-x64.zip ... ok.
Extracting PowerShell-7.3.6-win-x64.zip ... done.
Linking ~\scoop\apps\powershell\current => ~\scoop\apps\powershell\7.3.6
Creating shim for 'pwsh'.
Creating shortcut for PowerShell (pwsh.exe)
'powershell' (7.3.6) was installed successfully!
**PowerShell** のグローバルインストール\\
PS > sudo scoop install -g powershell
Installing 'powershell' (7.0.0) [64bit]
PowerShell-7.0.0-win-x64.zip (88.7 MB) [======================================================================] 100%
Checking hash of PowerShell-7.0.0-win-x64.zip ... ok.
Extracting PowerShell-7.0.0-win-x64.zip ... done.
Linking C:\ProgramData\scoop\apps\powershell\current => C:\ProgramData\scoop\apps\powershell\7.0.0
Creating shim for 'pwsh'.
Creating shortcut for PowerShell (pwsh.exe)
'powershell' (7.0.0) was installed successfully!
**PowerShell(Preview版)** のインストール\\
PS > scoop install powershell-preview

Installing 'powershell-preview' (7.0.0-rc.3) [64bit]
PowerShell-7.0.0-rc.3-win-x64.zip (88.8 MB) [=================================================================] 100%
Checking hash of PowerShell-7.0.0-rc.3-win-x64.zip ... ok.
Extracting PowerShell-7.0.0-rc.3-win-x64.zip ... done.
Linking ~\scoop\apps\powershell-preview\current => ~\scoop\apps\powershell-preview\7.0.0-rc.3
Creating shim for 'pwsh'.
WARN  Overwriting shim to pwsh.exe installed from powershell
Creating shortcut for PowerShell Preview (pwsh.exe)
'powershell-preview' (7.0.0-rc.3) was installed successfully!
===== ダウンロード ===== [[https://github.com/PowerShell/PowerShell/releases|Releases · PowerShell/PowerShell]]\\ [[https://aka.ms/pscore6|]]\\ [[https://aka.ms/pscore6-docs|]]\\ [[https://aka.ms/PowerShell-Release?tag=v7.0.0|]]\\ [[https://github.com/PowerShell/PowerShell/releases/tag/v7.0.0-rc.1|Releases · PowerShell/PowerShell - Release Candidate 1]]\\ [[https://github.com/PowerShell/PowerShell/releases/tag/v7.0.0-rc.2|Releases · PowerShell/PowerShell - Release Candidate 2]]\\ [[https://github.com/PowerShell/PowerShell/releases/tag/v7.0.0-rc.3|Releases · PowerShell/PowerShell - Release Candidate 3]]\\ ===== 変数 ===== [[.powershell:variable|環境変数/自動変数/ユーザ定義変数]]\\ ===== コマンド ===== [[.powershell:commands|PowerShell コマンド]]\\ [[.powershell:remote-commands|PowerShell リモートコマンド実行]]\\ [[.powershell:commands:get-alias|PowerShell エイリアス Get-Alias (alias: gal)]]\\ [[.powershell:commands:get-command|PowerShell コマンド情報取得[where/which] Get-Command (alias: gcm)]]\\ [[.powershell:call_command_prompt_interpreter_command|PowerShell からコマンドプロンプトのインタープリタコマンドの呼び出し]]\\ ===== コマンド履歴 ===== $ less (Get-PSReadlineOption).HistorySavePath $ cat (Get-PSReadlineOption).HistorySavePath | grep "scoop search" ===== PowerShellGet ===== [[https://www.powershellgallery.com/|PowerShell Gallery | Home]]\\ PowerShell ギャラリー PowerShellGet をインストールするには、以下のコマンドを実行する。\\ $ sudo Install-Module -Name PowerShellGet -Force PowerShellGet を新しいバージョンに更新するには、以下のコマンドを実行する。\\ $ sudo Update-Module -Name PowerShellGet **参考文献**\\ [[https://docs.microsoft.com/ja-jp/powershell/scripting/gallery/overview|PowerShell ギャラリー - PowerShell | Microsoft Docs]]\\ [[https://docs.microsoft.com/ja-jp/powershell/scripting/gallery/installing-psget|PowerShellGet のインストール - PowerShell | Microsoft Docs]]\\ ===== Powershell のテーマ設定 ===== 現在のコンソール設定をバックアップする。\\ $ concfg export console-backup.json console settings exported to console-backup.json ソラリゼーションカラーテーマを使用する。\\ $ concfg import solarized-dark Console settings were imported from 'solarized-dark' Overrides in the registry and shortcut files might interfere with your concfg settings. Would you like to find and remove them? (Y/n): y <- 入力する Removing 'Registry::HKEY_CURRENT_USER\Console\%SystemRoot%_System32_WindowsPowerShell_v1.0_powershell.exe' Removing 'Registry::HKEY_CURRENT_USER\Console\%SystemRoot%_SysWOW64_WindowsPowerShell_v1.0_powershell.exe' Reset console properties of shortcut 'C:\Users\tomoyan\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows PowerShell\Windows PowerShell (x86).lnk' Reset console properties of shortcut 'C:\Users\tomoyan\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows PowerShell\Windows PowerShell.lnk' Would you like to open a new console to see the changes? (Y/n): n <- 入力する 上記の翻訳\\ Overrides in the registry and shortcut files might interfere with your concfg settings. Would you like to find and remove them? レジストリファイルおよびショートカットファイルのオーバーライドは、concfg設定に干渉する可能性があります。それらを見つけて削除しますか? Would you like to open a new console to see the changes? 変更を確認するために新しいコンソールを開きますか? ==== 参考文献 ==== [[https://github.com/lukesampson/scoop/wiki/Theming-Powershell|Theming Powershell · lukesampson/scoop Wiki · GitHub]]\\ ===== PowerShell のバージョン ===== PS > Get-Host Name : ConsoleHost Version : 6.2.4 InstanceId : 3a2ed9d0-2c0b-42d5-976a-459d8e3f07af UI : System.Management.Automation.Internal.Host.InternalHostUserInterface CurrentCulture : ja-JP CurrentUICulture : ja-JP PrivateData : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy DebuggerEnabled : True IsRunspacePushed : False Runspace : System.Management.Automation.Runspaces.LocalRunspace PS > Get-Host | Select-Object Version Version ------- 6.2.4 PS > $PSVersiontable Name Value ---- ----- PSVersion 6.2.4 PSEdition Core GitCommitId 6.2.4 OS Microsoft Windows 10.0.19559 Platform Win32NT PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…} PSRemotingProtocolVersion 2.3 SerializationVersion 1.1.0.1 WSManStackVersion 3.0 ===== hosts ファイルの編集 (管理者として実行) ===== PS > start-process notepad c:\windows\system32\drivers\etc\hosts -verb runas ===== カレントディレクトリ変更 ===== PS C:\Windows\System32> cd ~ PS C:\Users\tomoyan> pwd Path ---- C:\Users\tomoyan ===== サービスの起動/停止 (管理者として実行) ===== PS > start-process net -argumentlist "start postgresql-x64-11" -verb runas PS > start-process net -argumentlist "stop postgresql-x64-11" -verb runas ===== 参考文献 ===== [[http://www.vwnet.jp/windows/etc.asp#PowerShell|PowerShell - vwnet.jp]]\\ [[git>PowerShell/Win32-OpenSSH/releases|Releases · PowerShell/Win32-OpenSSH · GitHub]]\\ [[https://binary-pulsar.hatenablog.jp/entry/2018/09/01/000000|]]\\ [[https://stackoverflow.com/questions/2124753/how-can-i-use-powershell-with-the-visual-studio-command-prompt|How can I use PowerShell with the Visual Studio Command Prompt? - Stack Overflow]]\\ [[https://archive.codeplex.com/?p=pscx|PowerShell Community Extensions - CodePlex Archive]]\\ [[https://rkeithhill.wordpress.com/2014/10/24/pscx-3-2-0-available/|PSCX 3.2.0 Available | Keith Hill's Blog]]\\ [[https://rkeithhill.wordpress.com/|Keith Hill's Blog | Just another WordPress.com site]]\\ [[https://www.powershellgallery.com/|PowerShell Gallery | Home]]\\ [[https://www.vwnet.jp/Windows/w10/PSHistry.htm|PowerShell の入力履歴]]\\ [[https://help.appveyor.com/discussions/questions/18777-how-to-use-vcvars64bat-from-powershell|How to use vcvars64.bat from Powershell? / Questions / Discussion Area - AppVeyor Support]]\\ [[git>microsoft/vcpkg/blob/2020.11/scripts/bootstrap.ps1#L68|vcpkg/bootstrap.ps1 at 2020.11 · microsoft/vcpkg]]\\ [[https://stackoverflow.com/questions/26998968/passing-variables-between-powershell-commands-in-a-python-script|Passing variables between Powershell commands in a python script]]\\