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

前提: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