非コマンドレットなコマンドの引数としてファイルリストを渡す

前提: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 へ渡す

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

Last-modified: 2018-07-04 (水) 20:07:28 (80d)