2010年7月17日土曜日

WPSで作業の自動化を

ちょっとした作業を自動化したいとおもった。
メンテナンスしているアプリーケーションで、内部で参照している接続先を切り替える必要がある。
接続先はプロパティファイルで指定しているが、いちいち開いて変更するのが面倒だ。
ちょっとしたスクリプトを組んで、それを実行する事でどうにかならないかと考えた。
そこで選択したスクリプトがWPS(Windows Powershell)である。
選択した理由は特にない。


# Get-Contentでファイルの内容を読み込む
$fpath = "C:\WWW\XXX\YYY.ZZZ"
$fcontents = $(Get-Content $fpath)
# 変更前の内容を表示する
"変更前設定:" + $fcontents
$ftest = $($fcontents[$fcontents.Length - 1].Contains("ABCDE"))
if ($ftest) {
# 接続先Aから接続先Bへ変更する
$fcontents = $(Get-Content $fpath) -replace "ABCDE","FGHJK"
"接続先をAからBへ変更しました"
} else {
# 接続先Bから接続先Aへ接続先を変更する
$fcontents = $(Get-Content $fpath) -replace "FGHJK","ABCDE"
"接続先をBからAへ変更しました"
}
# 変更後の内容を表示する
"変更後設定:" + $fcontents
# Set-Contentで書き込みを行う。
# ("$fcontents > $fpath" でも書き込みは可能。
# ただし、文字コードをShift_JISからUTF-16に変えてしまう為使用できない。
# Get-ContentでShift_JISから内部コードであるUTF-16へ
# "$fcontents > $fpath"は内部コードのまま書き出すようだ)
Set-Content $fpath -value $fcontents

組んでは見てみたが結局使い物にならなかった。
そのまま実行させたり配布するのに、証明書をつけるのかPCのセキュリティの設定をかえるのか何らかの手続きが必要になるようで、面倒だった。AppleScriptの様なものを期待したのだが、そんなにお手軽とは云えなかった。


セキュリティ、セキュリティと重要な事はわかっているが面倒な事だ

0 件のコメント:

コメントを投稿