get-alias, 別名(エイリアス)を確認することができる。
PS C:\> get-alias| gm -m p* TypeName: System.Management.Automation.AliasInfo Name MemberType Definition ---- ---------- ---------- CommandType Property System.Management.Automation.CommandTypes CommandType {get;} Definition Property string Definition {get;} Description Property string Description {get;set;} PS C:\> get-alias -Definition get-alias CommandType Name Version Source ----------- ---- ------- ------ Alias gal -> Get-Alias PS C:\>
# Cmdletなどの詳細などが確認できるhelpの表示方法 Get-Help About_* Help About_pipeline # -command は省略しても認識するとの情報あり PowerShell [-command] ""
batからPowershellを呼び出す場合のforeach-Objectは%%{}のようにbatの%の二重化ルールを忘れないようにする。
batと同様に癖があるように感じるのは、私がこれらをあまりよく知らないということが原因のようだ。
コマンドレットという私には聞き慣れないカタカナも手伝ってか、ものすごい抵抗を感じている。
でも覚えればbatではなかなか実現できなかったような処理でも容易に作成できそうだ。
Objectというものに慣れるまではそこそこ苦しみそう。
get-filehash * -a sha1| group hash Count Name Group ----- ---- ----- 21 DA39A3EE5E6B4B0D3255BF... {@{Algorithm=SHA1; Hash=DA39A3EE5E6B4B0D3255BFEF95601890AFD80709; Path=C:\... (Get-filehash *.log, *.dat -a sha1| select hash).gettype() IsPublic IsSerial Name BaseType -------- -------- ---- -------- True True Object[] System.Array (Get-filehash *.log, *.dat -a sha1| select hash)| gm TypeName: Selected.System.Management.Automation.PSCustomObject Name MemberType Definition ---- ---------- ---------- Equals Method bool Equals(System.Object obj) GetHashCode Method int GetHashCode() GetType Method type GetType() ToString Method string ToString() Hash NoteProperty string Hash=2FC4FBC63678171A8AA76A78B3E2C9B27356153D
#いたるところに書式の簡略化ができるところがある。 #Select-StringはAliasでslsと書くこともできる。オプションなども同じ字面になるものがない部分までで認識してくれるよう。 #$_ は|で渡されたものを表す。 gal CommandType Name Version Source ----------- ---- ------- ------ Alias % -> ForEach-Object Alias ? -> Where-Object Alias gal -> Get-Alias
1..3 | Foreach-Object -PipelineVariable Left -Process { $_ } | Foreach-Object -PV Right -Process { 1..5 } | Foreach-Object -Process { "$Left * $Right = " + ($Left * $Right) }
;について、一行に複数cmd記述する場合の区切りとなる。改行する場合には不要らしい。
PowerShell
コマンドがやたらに長く不格好、なにより一から覚えなければならず、使いづらく面倒だと感じ、嫌いだった。
慣れてきたことで抵抗が薄れ、便利だと感じることも増えた。
about_Escape_Characters
慣れてきたことで抵抗が薄れ、便利だと感じることも増えた。
about_Escape_Characters
Windows PowerShell Profiles
Start-Process cmd "/K echo %userprofile%"
- Import-csv で読み込むファイル内に空白行がある場合でも、Errorとなるということもなく、データ行のみ取り込まれる。
- Read-Host で入力プロンプトで値を取得できるらしい。