一部修正として送られてくるSIMAファイルに含まれる画地の名称を取り出すスクリプトを書いてみました。
標準出力に出てきた画地名称をWingNeo INFINITYのワイルドカード選択に突っ込むと変更のあった画地だけを選択できます。
$SIMA = Get-Content $args
$SIMA | foreach {
if ( $_ -match "^D00") {
Write-Output $_.Split(',')[2].Replace(" ","")
}
}
スクリプトの引数としてSIMAファイルのパスを渡すと$args
に渡されて$SIMA
変数に内容を読み込みます。
foreachで行ごとに呼び出して「D00」で始まる行($_
)があったら「,」で配列に分割してから2番目のカラム=画地名称を取り出します。
測量ソフトによってはカラムの文字数を合わせるために半角スペースで埋めているものがあるので容赦なく半角スペースは消しています。
本当はワンライナーで書きたかったのですが、順を追ってワンライナーを目指してみます。
なお、普段はWindows用テキストエディタのxyzzyにSIMAファイルをドロップしてからC-x #
でfilter-bufferに対してRubyのワンライナーで取り出しています。
ruby -ne "puts $_.split(',')[2].gsub(' ','') if $_ =~ /^D00/"
測量ソフトを操作するときはマウスも使ってるのでPowerShellでスクリプトに突っ込むよりxyzzyとRubyの組み合わせの方g(ry