Muni Bus

パソコンの操作方法や設定方法を忘れないようにメモしています。ブログを一回引っ越ししているので、所々表示がかなり乱れています・・・

PowerShell

【PowerShell】最新版をインストールする(MSIパッケージの使用)

マイクロソフトの公式ページから、MSIパッケージをダウンロードする。2025年9月時点の最新バージョンは7.5.2。 https://github.com/PowerShell/PowerShell/releases/download/v7.5.2/PowerShell-7.5.2-win-x64.msi https://learn.microsoft.com/ja-jp/powers…

【PowerShell】Visual Basicの関数を使う

Visual Basic特有の関数(Asc, Chr, Right)などを使うには、Microsoft.VisualBasic名前空間のオブジェクトを利用すればよい。直接呼び出すこともできるし、型名を変数に代入して利用してもよい。 PS > [Microsoft.VisualBasic.Strings]::Asc("S")83PS > $vbs…

【PowerShell】文字列の末尾から文字数を指定して文字列を取り出す

System名前空間のStringクラスにはそのような機能を実現するメソッドは搭載されていないため、この動作を実現させるには、LengthプロパティとSubstringメソッドを組み合わせて使う。 PS > $s = "鈴木みのりさん、かわいい", "瀬戸麻沙美さん、かわいい"PS > …

【PowerShell】文字列の先頭から文字数を指定して文字列を取り出す

Microsoft.VisualBasic名前空間のStringsクラスのLeftメソッドを使う。 PS > $s = "鈴木みのりさん、かわいい", "瀬戸麻沙美さん、かわいい"PS > # 先頭から5文字目までPS > $s | % {[Microsoft.VisualBasic.Strings]::Left($_, 5)}鈴木みのり瀬戸麻沙美PS >…

【PowerShell】文字列の先頭から文字数を指定して文字列を取り出す

Substringメソッドを使う。第一引数には0を指定し、第二引数には取り出す文字数を指定すればよい。 PS > $s = "鈴木みのりさん、かわいい", "瀬戸麻沙美さん、かわいい"PS > $s | % {$_.Substring(0, 5)} # 先頭から5文字目まで鈴木みのり瀬戸麻沙美PS > $s …

【PowerShell】文字列の一部を取り出す

Substringメソッドを使う。第一引数に取り出したい文字列が何文字目から始まるか始まる位置(0~)を、第二引数にはその取り出す文字列の文字数を指定する。なお、文字列の先頭は0文字目となることに注意。第二引数を省略すると、文字列の最後までという意味…

【PowerShell】オブジェクトから特定のプロパティだけを取り出す

Select-Objectコマンドレットを使う。 PS > Get-ChildItem C:\Windows\win.ini ディレクトリ: C:\WindowsMode LastWriteTime Length Name---- ------------- ------ -----a---- 2021/06/05 21:08 92 win.iniPS > Get-ChildItem C:\Windows\win.ini | Select-…

【PowerShell】オブジェクトのメンバを得る

Get-Memberコマンドレットを使う。-MemberTypeオプションに取得したいメンバの種類を指定することができる。 PS > Get-ChildItem C:\Windows\win.ini ディレクトリ: C:\WindowsMode LastWriteTime Length Name---- ------------- ------ -----a---- 2021/06/…

【PowerShell】定義されているエイリアスの一覧を得る

Get-Aliasコマンドレットを使う。 CommandType Name Version Source----------- ---- ------- ------Alias % -> ForEach-ObjectAlias ? -> Where-ObjectAlias ac -> Add-Content(以下、表示省略) DisplayNameプロパティに、エイリアスと元のコマンドレット…

【PowerShell】pingを行う

Test-Connectionコマンドレットを使う。 PS > Test-Connection -ComputerName www.yahoo.co.jpSource Destination IPV4Address IPV6Address------ ----------- ----------- -----------○○○○○○ www.yahoo.co.jp 124.83.185.124○○○○○○ www.yahoo.co.jp 124.83.…

【PowerShell】オブジェクトのプロパティの出力を項目ごとに出力する

Format-Listコマンドレットを使う。通常の出力は、オブジェクトのプロパティは横一列に表形式で表示されるが、その出力をパイプラインでFormat-Listコマンドレットに渡すことで、各項目ごとに表示することができる。 > Get-ChildItem C:\Windows\w*.exe | Fo…

【PowerShell】画面出力から特定の文字列を含む内容だけ取り出す

パイプラインを使用して、Where-Objectコマンドレットを使って取り出す条件を指定すればよい。Where-Objectのエイリアスとして?記号が割り当てられているため、?記号で代用できる。 以下は、プロセス一覧から秀丸エディタまたはサクラエディタのプロセスを抜…

【PowerShell】現在実行中のプロセスを一覧表示する

Get-Processコマンドレットを使う。 PS > Get-ProcessHandles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName------- ------ ----- ----- ------ -- -- -----------(表示省略)

【PowerShell】PowerShellの最新版をインストールする

wingetコマンドを使う。最初に、wingetコマンドのsearchサブコマンドで、パッケージを検索する。 PS > winget search Microsoft.PowerShell名前 ID バージョン ソース------------------------------------------------------------------PowerShell Microso…

【PowerShell】配列から条件に一致する要素を抽出する

Whereメソッドを使う。一致する要素がない場合は、Countプロパティが0のオブジェクトを返す。 PS > $n = 0..12 | % {[Math]::Pow(2, $_)}PS > Write-Host $n1 2 4 8 16 32 64 128 256 512 1024 2048 4096PS > Write-Host $n.Where({$_ -gt 100})128 256 512 …

【PowerShell】特定の文字列で始まる(始まらない)文字列を抽出する

正規表現で^記号は文字列の先頭を表すため、これを利用する。-match演算子は正規表現パターンにマッチするものを返し、-notmatch演算子はマッチしないものを返す。 PS > $ss = "石見舞菜香", "鈴木みのり", "瀬戸麻沙美", "のぐちゆり", "和多田美咲"PS > # …

【PowerShell】特定の文字列で終わる(終わらない)文字列を抽出する

正規表現で$記号は文字列の末尾を表すため、これを利用する。-match演算子は正規表現パターンにマッチするものを返し、-notmatch演算子はマッチしないものを返す。 PS > $ss = "石見舞菜香", "鈴木みのり", "瀬戸麻沙美", "のぐちゆり", "和多田美咲"PS > # …

【PowerShell】Bitmapオブジェクトの画像を連結する

画像の連結機能を提供するメソッドはないため、連結後の大きさを持つ無地の画像を作成して、GraphicsクラスのDrawImageメソッドで、作成した画像にBitmapオブジェクトを貼ればよい。 以下は、大きさが320×240のBitmapオブジェクト(赤色(bitmap_combine1.pn…

【PowerShell】変数の型を変換する

型リテラルか型変換演算子を使う。なお、PowerShellでは代入する際には、指定したリテラルに応じて型が自動で割り当てられる。 型リテラルを使う場合は、変数もしくはリテラルの前に型リテラルを配置する。型リテラルを使うと変換できない場合はエラーが発生…

【PowerShell】逆双曲線関数を使う

Windows 10やWindows 11に付属しているPowerShell(バージョン5)では、数学の各種関数を利用できるMathクラスには逆双曲線関数が搭載されていない。そのため、逆双曲線関数の定義に従ってPowerShell上の関数を作成する必要がある。以下は作成とその計算例。…

【PowerShell】1つの行で複数のコマンドを実行する

;(セミコロン)を使う。PowerShellでは、コマンドを区切るための記号としてセミコロンが使われる。 PS > $n = 0; $n += 2; $n = [Math]::Pow($n, 16); Write-Output $n65536PS > Write-Output $sPS > $s = "セナディア役の鈴木みのりさん、かわいい"; Writ…

【PowerShell】System.Mathクラスで使用できるメソッドを確認する

Get-Memberコマンドレットを使う。以下はWindows 11に付属のバージョン5で実行した例。 PS > $PSVersionTable.PSVersionMajor Minor Build Revision----- ----- ----- --------5 1 26100 2161PS > [System.Math] | Get-Member -Static -MemberType Method Ty…

【PowerShell】累乗を求める

PowerShellには累乗を求める算術演算子がないため、MathクラスのPowメソッドを使う。第一引数に累乗させる数を、第二引数に累乗の指数を指定する。 PS > [Math]::Pow(10, 2)100PS > [Math]::Pow(2, 0.5)1.4142135623731PS > 0..8 | % {[Math]::Pow(2, $_)}12…

【PowerShell】無地の画像を作成する

System.Drawing名前空間のBitmapクラスを使う。以下は横640ピクセル、縦480ピクセルの無地のBitmapオブジェクトを静的なnewメソッドで作成し、カレントディレクトリにPNG形式(RGBの24ビットフルカラー)のファイル640x480_24.pngを出力した例。 PS > Add-Ty…

【PowerShell】現在の環境で利用可能なすべてのタイムゾーンを調べる

Get-TimeZoneコマンドレットに-ListAvailableオプションを付けて実行する。 PS > Get-TimeZone -ListAvailableId : Dateline Standard TimeDisplayName : (UTC-12:00) 国際日付変更線 西側StandardName : 日付変更線 (標準時)DaylightName : 日付変更線 (夏…

【PowerShell】現在の環境のタイムゾーンを調べる

Get-TimeZoneコマンドレットを使う。戻り値はTimeZoneInfoクラス。 PS > Get-TimeZoneId : Tokyo Standard TimeDisplayName : (UTC+09:00) 大阪、札幌、東京StandardName : 東京 (標準時)DaylightName : 東京 (夏時間)BaseUtcOffset : 09:00:00SupportsDayli…

【PowerShell】リテラルや変数の型(.NET型)を得る

GetTypeメソッドのFullNameプロパティを参照する。 PS > (58).GetType().FullNameSystem.Int32PS > $n = 58PS > $n.GetType().FullNameSystem.Int32PS > '和多田美咲とメイショウドトウ'.GetType().FullNameSystem.StringPS > $s = '和多田美咲とメイショウ…

【PowerShell】オブジェクトのメンバを調べる

Get-Memberコマンドレットを使う。 PS > Get-ChildItem C:\Windows\write.exe ディレクトリ: C:\WindowsMode LastWriteTime Length Name---- ------------- ------ -----a---- 2022/05/07 5:16 28672 write.exePS > Get-ChildItem C:\Windows\write.exe | Ge…

【PowerShell】現在の環境のカルチャ(地域設定)に関する情報を得る

現在の環境のカルチャ(地域設定)に関する情報(言語やキーボードレイアウトなど)を得るには、Get-Cultureコマンドレットを使う。CultureInfoオブジェクトで返される。 PS > Get-CultureLCID Name DisplayName---- ---- -----------1041 ja-JP 日本語 (日…

【PowerShell】英字を大文字(小文字)に変換する

ToUpperメソッドとToLowerメソッドは、文字列に含まれる英字をそれぞれ一括で大文字、小文字に変換する。英字ではない文字は変換せずにそのまま返す。 PS > $s = "Abc123あいうAbc"PS > $s.ToUpper()ABC123あいうABCPS > $s.ToLower()abc123あいうab…