PowerShellでpecoでcdする

Windows使いの皆さん。こんにちは。
PowerShell使ってますか?
僕は普段はmac使いなので、zshでpecoってるわけです。

Pecoって便利ですよね。

PowerShellでも使いたい。
インストールだけなら、Windows版のHomebrewことChocolateyで可能。

choco install peco  

pecoの選択結果でcdしたい

PowerShellスクリプトも、dosコマンドもよく解らないので
適当に作ってみる。

まず、ユーザのホームディレクトリにバッチを設置する。
C:\Users{UserName}\cdp.bat

@echo off

for /f "delims=" %%i in ('dir /ad/s/b^| peco') do (
    echo cd '%%i'
    break
)

次に、Microsoft.PowerShell_profile.ps1を弄ります。
パスがわからない人は、PowerShell

$PROFILE

とすれば、出てきます。
Microsoft.PowerShell_profile.ps1が見当たらない人は、新規に追加して下さい。
そして、こんなfunctionを追加します。

function cdp(){
        $cd = $(~\cdp.bat)
        if($cd){
                Invoke-Expression "$cd"
        }
}

PowerShellを再起動後、

cdp

コマンドを実行すると・・・ pecoが発動!
日本語パスに問題があるが、ちょっと捗る。