Yanor.net/
Wiki
Blog
GitHub
Sandbox
開始行:
* パイプライン入力 1 - ByValue [#h3a899b7]
** 概要 [#h7cbafb9]
CommandletA | CommandletB
- PowerShellでパイプで値を渡す方法は2つある。ByValue と B...
- ByValueがデフォルトで、PowerShellはパイプからByValueな...
- ここではByValueについて説明する。
** ByValue 例1 [#n0c99ed5]
*** 例 [#g5f3e722]
PS> "1.txt","2.txt","3.txt" | Invoke-Item
- この例ではカレントディレクトリに1.txtや2.txtというファ...
*** "1.txt","2.txt","3.txt" がどんな値を出力するかGet-Mem...
PS> "1.txt","2.txt","3.txt" | Get-Member
TypeName: System.String
- 「String」であることがわかる。
*** Invoke-Itemがどんなパイプライン入力を受け取るかHelpで...
PS> help Invoke-Item -Full
-Path <String[]>
Specifies the path to the selected item.
必須 true
位置 0
既定値 None
パイプライン入力を許可する True (ByPropertyName, B...
ワイルドカード文字を許可する false
- 「-Path」が「ByValue」で「パイプライン入力を許可する Tr...
- そして、-Pathが受け取るのは「String[]」。
- よって、Invoke-Itemは"1.txt","2.txt","3.txt"を受け取れ...
** ByValue 例2 [#x3d6dcce]
*** 例 [#mc370f22]
PS> Get-Process notepad* | Stop-Process
- この例ではメモ帳(notepad.exe)を起動している状態で、そ...
*** Get-Process がどんな値を出力するかGet-Memberで調べる ...
PS> Get-Process | gm
TypeName: System.Diagnostics.Process
- 「Process」であることがわかる。
*** Stop-Processがどんなパイプライン入力を受け取るかHelp...
PS> help Stop-Process -full
-InputObject <Process[]>
Specifies the process objects to stop. Enter a varia...
必須 true
位置 0
既定値 None
パイプライン入力を許可する True (ByValue)
ワイルドカード文字を許可する false
- Stop-ProcessがProcessをByValueで受け取ることがわかる。
- よって、このパイプ処理は正常に動作する。
** ByValue 例3 [#y3aaf0e8]
*** 例 [#rbe6d83a]
PS> gc .\files.csv
No,Filename
1,a.txt
2,b.txt
3,c.txt
- files.csvというCSVファイルがあって、そこに書かれたa.txt...
*** Import-Csvがどんな値を出力するかGet-Memberで調べる [#...
PS> Import-Csv .\files.csv | gm
TypeName: System.Management.Automation.PSCustomObject
- Import-CsvはPSCustomObjectを出力する。よって、このまま...
*** Import-Csvの出力からFilenameだけをselectしてみる [#s9...
PS> Import-Csv .\files.csv | select Filename
Filename
--------
a.txt
b.txt
c.txt
PS> Import-Csv .\files.csv | select Filename | gm
TypeName: Selected.System.Management.Automation.PSCustom...
- select Filenameでファイル名だけ取り出せているように見え...
*** select -ExpandPropertyでプロパティだけ取り出す [#qe0a...
PS> Import-Csv .\files.csv | select -ExpandProperty File...
a.txt
b.txt
c.txt
PS> Import-Csv .\files.csv | select -ExpandProperty File...
TypeName: System.String
PS> Import-Csv .\files.csv | select -ExpandProperty File...
- このような場合、select -ExpandPropertyを使う。すると、...
- これによって、このパイプ処理は正常に動作する。
** 参考 [#o2dd14f7]
- https://blogs.technet.microsoft.com/heyscriptingguy/201...
終了行:
* パイプライン入力 1 - ByValue [#h3a899b7]
** 概要 [#h7cbafb9]
CommandletA | CommandletB
- PowerShellでパイプで値を渡す方法は2つある。ByValue と B...
- ByValueがデフォルトで、PowerShellはパイプからByValueな...
- ここではByValueについて説明する。
** ByValue 例1 [#n0c99ed5]
*** 例 [#g5f3e722]
PS> "1.txt","2.txt","3.txt" | Invoke-Item
- この例ではカレントディレクトリに1.txtや2.txtというファ...
*** "1.txt","2.txt","3.txt" がどんな値を出力するかGet-Mem...
PS> "1.txt","2.txt","3.txt" | Get-Member
TypeName: System.String
- 「String」であることがわかる。
*** Invoke-Itemがどんなパイプライン入力を受け取るかHelpで...
PS> help Invoke-Item -Full
-Path <String[]>
Specifies the path to the selected item.
必須 true
位置 0
既定値 None
パイプライン入力を許可する True (ByPropertyName, B...
ワイルドカード文字を許可する false
- 「-Path」が「ByValue」で「パイプライン入力を許可する Tr...
- そして、-Pathが受け取るのは「String[]」。
- よって、Invoke-Itemは"1.txt","2.txt","3.txt"を受け取れ...
** ByValue 例2 [#x3d6dcce]
*** 例 [#mc370f22]
PS> Get-Process notepad* | Stop-Process
- この例ではメモ帳(notepad.exe)を起動している状態で、そ...
*** Get-Process がどんな値を出力するかGet-Memberで調べる ...
PS> Get-Process | gm
TypeName: System.Diagnostics.Process
- 「Process」であることがわかる。
*** Stop-Processがどんなパイプライン入力を受け取るかHelp...
PS> help Stop-Process -full
-InputObject <Process[]>
Specifies the process objects to stop. Enter a varia...
必須 true
位置 0
既定値 None
パイプライン入力を許可する True (ByValue)
ワイルドカード文字を許可する false
- Stop-ProcessがProcessをByValueで受け取ることがわかる。
- よって、このパイプ処理は正常に動作する。
** ByValue 例3 [#y3aaf0e8]
*** 例 [#rbe6d83a]
PS> gc .\files.csv
No,Filename
1,a.txt
2,b.txt
3,c.txt
- files.csvというCSVファイルがあって、そこに書かれたa.txt...
*** Import-Csvがどんな値を出力するかGet-Memberで調べる [#...
PS> Import-Csv .\files.csv | gm
TypeName: System.Management.Automation.PSCustomObject
- Import-CsvはPSCustomObjectを出力する。よって、このまま...
*** Import-Csvの出力からFilenameだけをselectしてみる [#s9...
PS> Import-Csv .\files.csv | select Filename
Filename
--------
a.txt
b.txt
c.txt
PS> Import-Csv .\files.csv | select Filename | gm
TypeName: Selected.System.Management.Automation.PSCustom...
- select Filenameでファイル名だけ取り出せているように見え...
*** select -ExpandPropertyでプロパティだけ取り出す [#qe0a...
PS> Import-Csv .\files.csv | select -ExpandProperty File...
a.txt
b.txt
c.txt
PS> Import-Csv .\files.csv | select -ExpandProperty File...
TypeName: System.String
PS> Import-Csv .\files.csv | select -ExpandProperty File...
- このような場合、select -ExpandPropertyを使う。すると、...
- これによって、このパイプ処理は正常に動作する。
** 参考 [#o2dd14f7]
- https://blogs.technet.microsoft.com/heyscriptingguy/201...
ページ名: