簡易的な進捗カウンタをコンソールに表示したい
Write-Host -NoNewline ("`r" + "hogehoge")
を使う
`r
= CR(キャリッジ・リターン)でカーソルが左端に移動してコンソール表示を上書き
$N = 1000
for($i = 0; $i -lt $N; $i++) {
if(($i % 10) -eq 0){ Write-Host -NoNewline ("`r" + "PROGRESS: ${i} / ${N}") }
$null = Start-Sleep -Milliseconds 100
}
UNIXシェルみたいに、コマンド出力をそのまま文字列として扱いたい
Out-String
でオブジェクトを文字列の配列に変換
Stream
オプションを付けないと1個の文字列の要素にまとめられてしまうので注意
> Get-ChildItem
ディレクトリ: C:\Users\hoge
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2020/04/06 16:58 .android
d----- 2021/01/06 12:26 .Azure
d-r--- 2020/06/14 0:39 3D Objects
d----- 2020/03/21 22:36 Apple
d-r--- 2020/06/14 0:39 Contacts
d----- 2020/03/21 23:47 Documents
d-r--- 2021/01/30 7:58 Downloads
d-r--- 2020/06/14 0:39 Favorites
d-r--- 2021/01/30 8:02 Google ドライブ
d-r--- 2020/06/14 0:39 Links
d-r--- 2020/06/14 0:39 Music
dar--l 2021/01/30 8:01 OneDrive
d----- 2020/03/22 1:00 Pictures
d-r--- 2020/06/14 0:39 Saved Games
d-r--- 2020/06/14 0:39 Searches
d-r--- 2020/09/16 17:47 Videos
> Get-ChildItem | select-string 'Apple'
Apple
> Get-ChildItem | Out-String -Stream | select-string 'Apple'
d----- 2020/03/21 22:36 Apple