| 両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | 
| windows:powershell:commands:get-command [2020/02/18 13:14]  –  ともやん | windows:powershell:commands:get-command [2022/06/04 04:11] (現在)  –  ともやん | 
|---|
| <html> | ====== Get-Command (alias: gcm) ====== | 
| <style> |  | 
| #result pre { |  | 
| /*height: 300px;*/ |  | 
| overflow: scroll; |  | 
| overflow-x: hidden; |  | 
| font-size: 12px; |  | 
| } |  | 
| </style> |  | 
| </html> |  | 
| ====== Get-Command ====== |  | 
| 現在のセッションで使用できるコマンドを取得する。\\ | 現在のセッションで使用できるコマンドを取得する。\\ | 
| \\ |  | 
| **Windows 10**\\ | ===== which コマンド (Linux) としての利用 ===== | 
|  | **which** コマンドは、PATH に登録されているディレクトリにある実行可能ファイルを、PATH の登録順で最初に見つかったファイルだけを表示する。\\ | 
|  |  | 
|  | Windows の PowerShell の場合。\\ | 
|  | <WRAP prewrap 100%> | 
|  | <code powershell> | 
|  | $ Get-Command python | Select-Object Source | 
|  | </code> | 
|  | or | 
|  | <code powershell> | 
|  | $ gcm python | select Source | 
|  | </code> | 
|  | <WRAP> | 
| <WRAP prewrap 100% #result> | <WRAP prewrap 100% #result> | 
| <code powershell> | <code powershell> | 
| PS > Get-Command |  | 
|  | Source | 
|  | ------ | 
|  | C:\Users\tomoyan\scoop\apps\python\current\python.exe | 
|  | </code> | 
|  | </WRAP> | 
|  |  | 
|  | Linux の [[linux:powershell|PowerShell]] では、**which** を使うこともできるし、**Get-Command (alias: gcm)** を使うこともできる。\\ | 
|  | <WRAP prewrap 100%> | 
|  | <code powershell> | 
|  | $ which python | 
|  | /usr/bin/python | 
|  |  | 
|  | $ gcm python | select Source | 
|  |  | 
|  | Source | 
|  | ------ | 
|  | /usr/bin/python | 
|  | </code> | 
|  | </WRAP> | 
|  |  | 
|  | Windows のコマンドプロンプトでは、もともと **where** コマンドが使える🤔\\ | 
|  | <WRAP prewrap 100%> | 
|  | <code batch> | 
|  | > where python | 
|  | </code> | 
|  | </WRAP> | 
|  | <WRAP> | 
|  | <WRAP prewrap 100% #result> | 
|  | <code batch> | 
|  | C:\Users\tomoyan\scoop\apps\python\current\python.exe | 
|  | C:\Users\tomoyan\scoop\shims\python.exe | 
|  | C:\Users\tomoyan\AppData\Local\Microsoft\WindowsApps\python.exe | 
|  | </code> | 
|  | </WRAP> | 
|  |  | 
|  | しかし、Windows の PowerShell では、**where** コマンドは Alias の関係で使えない😅\\ | 
|  | <WRAP prewrap 100%> | 
|  | <code powershell> | 
|  | $ where python | 
|  | $ | 
|  | </code> | 
|  | </WRAP> | 
|  |  | 
|  | Alias は **where** が **Where-Object** の別名になっているためである。(コマンドプロンプトのように PowerShell を利用すると混乱する😅💦)\\ | 
|  | <WRAP prewrap 100%> | 
|  | <code powershell> | 
|  | $ gal where | 
|  | </code> | 
|  | </WRAP> | 
|  | <WRAP prewrap 100% #result> | 
|  | <code powershell> | 
|  |  | 
|  | CommandType     Name                                               Version    Source | 
|  | -----------     ----                                               -------    ------ | 
|  | Alias           where -> Where-Object | 
|  | </code> | 
|  | </WRAP> | 
|  |  | 
|  | Windows の PowerShell では、**where.exe** とすると使える🙄\\ | 
|  | <WRAP prewrap 100%> | 
|  | <code powershell> | 
|  | $ where.exe python | 
|  | </code> | 
|  | </WRAP> | 
|  | <WRAP prewrap 100% #result> | 
|  | <code powershell> | 
|  | C:\Users\tomoyan\scoop\apps\python\current\python.exe | 
|  | C:\Users\tomoyan\scoop\shims\python.exe | 
|  | C:\Users\tomoyan\AppData\Local\Microsoft\WindowsApps\python.exe | 
|  | </code> | 
|  | </WRAP> | 
|  |  | 
|  | Windows の **where** コマンドは、以下に存在している🤯\\ | 
|  | <WRAP prewrap 100%> | 
|  | <code powershell> | 
|  | $ gcm where.exe | 
|  | </code> | 
|  | </WRAP> | 
|  | <WRAP prewrap 100% #result> | 
|  | <code powershell> | 
|  |  | 
|  | CommandType     Name                                               Version    Source | 
|  | -----------     ----                                               -------    ------ | 
|  | Application     where.exe                                          10.0.2020… C:\WINDOWS\system32\where.exe | 
|  | </code> | 
|  | </WRAP> | 
|  |  | 
|  | Windows の PowerShell で **where** コマンドは容量だけ食って使い物にならなくなった😒ので、**where.exe** の別名として **which** を登録しておくと良い😁\\ | 
|  | <WRAP prewrap 100%> | 
|  | <code powershell> | 
|  | $ echo "sal which where.exe" >> $profile | 
|  | $ . $profile | 
|  | $ which python | 
|  | </code> | 
|  | </WRAP> | 
|  | <WRAP prewrap 100% #result> | 
|  | <code powershell> | 
|  | C:\Users\tomoyan\scoop\apps\python\current\python.exe | 
|  | C:\Users\tomoyan\scoop\shims\python.exe | 
|  | C:\Users\tomoyan\AppData\Local\Microsoft\WindowsApps\python.exe | 
|  | </code> | 
|  | </WRAP> | 
|  |  | 
|  | もしくは、[[windows:scoop|Scoop]] の [[windows:gow|Gow]] または [[windows:busybox|BusyBox]] をインストールすると **which** コマンドが使えるようになる😍\\ | 
|  | [[windows:gow|Gow (Gnu On Windows) - Linux コマンド群 (Cygwin 軽量版)]]\\ | 
|  | [[windows:busybox|BusyBox - UNIXコマンド詰め合わせセット🤤]]\\ | 
|  |  | 
|  | ===== Windows 10 ===== | 
|  | PowerShell の Cmdlet, Function, Alias などを調べる。\\ | 
|  | <code powershell> | 
|  | $ gcm Get-Command | 
|  | </code> | 
|  | <WRAP prewrap 100% #result> | 
|  | <code powershell> | 
|  |  | 
|  | CommandType     Name                                               Version    Source | 
|  | -----------     ----                                               -------    ------ | 
|  | Cmdlet          Get-Command                                        7.0.3.0    Microsoft.PowerShell.Core | 
|  |  | 
|  | </code> | 
|  | </WRAP> | 
|  |  | 
|  | PowerShell モジュール内のコマンドを一覧する。\\ | 
|  | <code powershell> | 
|  | $ gcm -Module Microsoft.PowerShell.Management | 
|  | </code> | 
|  | <WRAP prewrap 100% #result_long> | 
|  | <code powershell> | 
|  |  | 
|  | CommandType     Name                                               Version    Source | 
|  | -----------     ----                                               -------    ------ | 
|  | Cmdlet          Add-Content                                        7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          Clear-Content                                      7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          Clear-Item                                         7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          Clear-ItemProperty                                 7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          Clear-RecycleBin                                   7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          Convert-Path                                       7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          Copy-Item                                          7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          Copy-ItemProperty                                  7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          Debug-Process                                      7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          Get-ChildItem                                      7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          Get-Clipboard                                      7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          Get-ComputerInfo                                   7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          Get-Content                                        7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          Get-HotFix                                         7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          Get-Item                                           7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          Get-ItemProperty                                   7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          Get-ItemPropertyValue                              7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          Get-Location                                       7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          Get-Process                                        7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          Get-PSDrive                                        7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          Get-PSProvider                                     7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          Get-Service                                        7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          Get-TimeZone                                       7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          Invoke-Item                                        7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          Join-Path                                          7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          Move-Item                                          7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          Move-ItemProperty                                  7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          New-Item                                           7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          New-ItemProperty                                   7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          New-PSDrive                                        7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          New-Service                                        7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          Pop-Location                                       7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          Push-Location                                      7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          Remove-Item                                        7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          Remove-ItemProperty                                7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          Remove-PSDrive                                     7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          Remove-Service                                     7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          Rename-Computer                                    7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          Rename-Item                                        7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          Rename-ItemProperty                                7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          Resolve-Path                                       7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          Restart-Computer                                   7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          Restart-Service                                    7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          Resume-Service                                     7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          Set-Clipboard                                      7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          Set-Content                                        7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          Set-Item                                           7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          Set-ItemProperty                                   7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          Set-Location                                       7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          Set-Service                                        7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          Set-TimeZone                                       7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          Split-Path                                         7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          Start-Process                                      7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          Start-Service                                      7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          Stop-Computer                                      7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          Stop-Process                                       7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          Stop-Service                                       7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          Suspend-Service                                    7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          Test-Connection                                    7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          Test-Path                                          7.0.0.0    Microsoft.PowerShell.Management | 
|  | Cmdlet          Wait-Process                                       7.0.0.0    Microsoft.PowerShell.Management | 
|  |  | 
|  | </code> | 
|  | </WRAP> | 
|  |  | 
|  | <code powershell> | 
|  | $ gcm | 
|  | </code> | 
|  | <WRAP prewrap 100% #result_long> | 
|  | <code powershell> | 
|  |  | 
| CommandType     Name                                               Version    Source | CommandType     Name                                               Version    Source | 
| </WRAP> | </WRAP> | 
|  |  | 
| **Fedora 31**\\ | ===== Fedora 31 ===== | 
| <WRAP prewrap 100% #result> |  | 
| <code powershell> | <code powershell> | 
| PS > Get-Command | PS > Get-Command | 
|  | </code> | 
|  | <WRAP prewrap 100% #result_long> | 
|  | <code> | 
|  |  | 
| CommandType     Name                                               Version    Source | CommandType     Name                                               Version    Source | 
| </code> | </code> | 
| </WRAP> | </WRAP> | 
|  |  | 
|  | ===== 参考文献 ===== | 
|  | [[https://docs.microsoft.com/ja-jp/powershell/module/microsoft.powershell.core/get-command|Get-Command (Microsoft.PowerShell.Core) - PowerShell | Microsoft Docs]]\\ | 
|  |  |