非コマンドレットなコマンドの引数としてファイルリストを渡す
前提:3つの.txtファイルがあるとする
PS> dir
Mode LastWriteTime FileSize Name
---- ------------- -------- ----
-a---- 2018/07/04 19:40 9 B 1.txt
-a---- 2018/07/04 19:37 3 B 2.txt
-a---- 2018/07/04 19:37 3 B 3.txt
svn add の引数にする、すなわち svn add 1.txt 2.txt 3.txt とするには
PS> svn add (Get-Item *.txt).Name
A 1.txt
A 2.txt
A 3.txt
svn status の結果を svn revert の引数にする、すなわち svn revert 1.txt 2.txt 3.txt とするには
PS> svn st
M 1.txt
M 2.txt
M 3.txt
PS> svn revert ((svn st) -replace " +", "," | ConvertFrom-String -Delimiter "," | select -ExpandProperty P2)
Reverted '1.txt'
Reverted '2.txt'
Reverted '3.txt'
- Mの後の空白が多くて邪魔なので、(svn st) -replace " +", "," でいったん"M 1.txt"をカンマ区切りな"M,1.txt"にして、
- ConvetFrom-Stringに渡してカスタムオブジェクトにして、そこからselectで2カラム目(P2)を取り出すと、ファイル名の一覧になる
- それを svn revert へ渡す