Powershell入門

この記事では、Powershell初学者を対象として、Powershellの基本的な使い方について紹介します。  
JavaやC言語などのプログラミング言語を覚えた人が覚えやすいような順番で説明を考えています。
そのため、他の入門書などに比べて順番がバラバラだったり、内容も網羅的でない点がありますがご了承ください。
間違った内容が載っているなどのご指摘があれば、コメントいただけると幸いです。

また、説明で使用している資料は[こちら](https://github.com/daifukusan/powershell)からダウンロード可能です。  
説明では、Dドライブ直下に資料を格納していますが、適宜読み替えて使用してください。


# 目次
[01.Powershellとは](./a7fc364da620ba68849e)
[02.コマンドの基本①](./8f805fb23a4f074218f5)
[03.コマンドの基本②](./ce474e3eee7d827ce55d)
[04.変数](./69a20b5280277f42027d)
[05. スクリプト化](./436047504e2365c5bd03)
[06.条件ステートメント](./906f5bdc719b34052b46)
[07. ループステートメント](./fcb962e20acffac54951)
[08. 文字列、パス文字列の操作](./334a6b2d37c0edf11be6)
[09. パイプライン](./53cb7275a044be3256aa)
[10.関数](./42c823687bc116f0b7ce)
[11.プロセスの操作](./73421db2e8f2244bbc75)
[12.ファイルの参照・更新](./fcc0f8c9ee0c47c68a72)
[13.正規表現①](./6953cbe20fff49d83fc4)
[14.正規表現②](./dd96e60c65db0bb4d0db)

# 記事内で紹介したコマンドレット
記事内で紹介したコマンドレットの一覧です。  
Microsoftの公式へのリンクも掲載しているので、分からないことがあればこちらを参照しましょう。
|記事 | コマンドレット| 説明|
|:--|:--| :-- |
|02.コマンドの基本① | [Get-Location](https://docs.microsoft.com/ja-jp/powershell/module/microsoft.powershell.management/get-location?view=powershell-7.2) | 現在のカレントディレクトリを取得する|
||[Set-Location](https://docs.microsoft.com/ja-jp/powershell/module/microsoft.powershell.management/set-location?view=powershell-7.2)| 現在のカレントディレクトリを変更する|
||[Get-ChildItem](https://docs.microsoft.com/ja-jp/powershell/module/microsoft.powershell.management/get-childitem?view=powershell-7.2)|指定された場所から子項目を取得する|
||[Get-Command](https://docs.microsoft.com/ja-jp/powershell/module/microsoft.powershell.core/get-command?view=powershell-7.2)|すべてのコマンドを取得する|
||[Get-Help](https://docs.microsoft.com/ja-jp/powershell/module/microsoft.powershell.core/get-help?view=powershell-7.2)|コマンドに関するヘルプを取得する|
|03.コマンドの基本②|[Get-Content](https://docs.microsoft.com/ja-jp/powershell/module/microsoft.powershell.management/get-content?view=powershell-7.2)|指定された場所の項目の中身を取得する|
||[New-Item](https://docs.microsoft.com/ja-jp/powershell/module/microsoft.powershell.management/new-item?view=powershell-7.2)|新しい項目を作成する|
||[Copy-Item](https://docs.microsoft.com/ja-jp/powershell/module/microsoft.powershell.management/copy-item?view=powershell-7.2)|項目をある場所から別の場所にコピーする|
||[Move-Item](https://docs.microsoft.com/ja-jp/powershell/module/microsoft.powershell.management/move-item?view=powershell-7.2)|項目をある場所から別の場所に移動する|
||[Rename-Item](https://docs.microsoft.com/ja-jp/powershell/module/microsoft.powershell.management/rename-item?view=powershell-7.2)|項目の名前を変更する|
||[Remove-Item](https://docs.microsoft.com/ja-jp/powershell/module/microsoft.powershell.management/remove-item?view=powershell-7.2)|指定した項目を削除する|
|04.変数|[Write-Host](https://learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.utility/write-host?view=powershell-7.2)|出力をホストに書き込む|
|08. 文字列、パス文字列の操作|[Join-Path](https://docs.microsoft.com/ja-jp/powershell/module/microsoft.powershell.management/join-path?view=powershell-7.2)|パスと子パスを 1 つのパスに結合|
||[Split-Path](https://docs.microsoft.com/ja-jp/powershell/module/microsoft.powershell.management/split-path?view=powershell-7.2)|指定されたパス部分を返す|
||[Test-Path](https://docs.microsoft.com/ja-jp/powershell/module/microsoft.powershell.management/test-path?view=powershell-7.2)|指定されたパスが存在するかどうかを確認|
|09. パイプライン|[ForEach-Object](https://learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.core/foreach-object?view=powershell-7.2)|入力オブジェクトのコレクション内の各項目に対して操作を実行する|
||[Where-Object](https://learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.core/where-object?view=powershell-7.2)|プロパティの値に基づいて、コレクションからオブジェクトを選択する|
||[Sort-Object](https://learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.utility/sort-object?view=powershell-7.2)|プロパティ値別にオブジェクトを並べ替える|
|11.プロセスの操作|[Start-Process](https://learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.management/start-process?view=powershell-7.2&viewFallbackFrom=powershell-6)|ローカル コンピューター上のプロセスを開始する|
||[Get-Process](https://learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.management/get-process?view=powershell-7.2)|ローカル コンピューターで実行されているプロセスを取得する|
||[Stop-Process](https://learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.management/stop-process?view=powershell-7.2)|実行中のプロセスを以上停止する|
|12.ファイルの参照・更新|[Set-Content](https://learn.microsoft.com/ja-jp/powershell/module/Microsoft.PowerShell.Management/set-content?view=powershell-7)|新しいコンテンツを書き込むか、ファイル内の既存のコンテンツを置き換える|
||[Add-Content](https://learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.management/add-content?view=powershell-7)|指定した項目に内容を追加する|
||[Import-CSV](https://learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.utility/import-csv?view=powershell-7)|コンマ区切り値 (CSV) ファイル内の項目からテーブルのようなカスタム オブジェクトを作成する|
||[Export-CSV](https://learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.utility/export-csv?view=powershell-7.2)|オブジェクトを一連のコンマ区切り値 (CSV) 文字列に変換し、文字列をファイルに保存する|
||[Select-Object](https://learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.utility/select-object?view=powershell-7)|オブジェクトまたはオブジェクトのプロパティを選択する|

# Powershellの比較演算子
| Powershell |意味 | 英語 |一般的な記法 | C言語、Javaの記法 |
|:--|:--|:--|:--|:--|
|-eq|等しい|**eq**ual|= |== |
|-ne|等しくない|**n**ot **e**qual|≠|!= |
|-gt|より大きい|**g**reater **t**han| > | > |
|-ge|以上|**g**reater than or **e**qual	| ≧ |>= |
|-lt|より小さい|**l**ess **t**han| < | < |
|-le|以下|**l**ess than or **e**qual | ≦ | <= |