2014年4月17日木曜日

PowerShellでスクリプトをコンパイルしEXEを作る

powershellのスクリプトファイルPS1からEXEを作るスクリプトを書いた。
これ
http://ps2exe.codeplex.com     
にもとネタがあるが
私の環境で動かなかったので書きなおした
書きなおしたポイントは

①PowerShell V4.0 に対応
http://www.microsoft.com/ja-JP/download/details.aspx?id=40855

②icon を設定可能にする
ただ読み込むicoファイルは
面倒だったのでc:\script\myicon.ico固定
かえたい人は書き換えてください


あとWindows用apt-get  :Chocolatey を入れました
https://github.com/chocolatey/chocolatey/wiki

2014年4月10日木曜日

powershellを使いやすくする件+ssh対応させる件+いろいろ

この話は事実上
PowerShellをMicrosoft Updateに対応させ,historyをセッションを超えて保存できるようにする 

http://kokawa2003.blogspot.jp/2014/03/powershellmicrosoft-updatehistory.html

のつづきです。


その後もPowerShellを使っているわけなんだけど、これつかえばつかうほど
どういうわけか不満が出てくる。
そのあとでた不満の最たるものは
①コピペがやりづらい。
②sshができない+UTF8が表示できない。
というものだ


とりあえず①についてはckw-modをつかえばいいってのがわかった。
http://ckw-mod.github.io/
これをターミナルとしてこの中からpowershellをshellとしてコールする。
具体的には
ckw.cfg
にこう書けばいい。
Ckw*exec:  powershell
Ckw*chdir: c:\users\kouji ←あなたのホーム
これで右クリックするだけでペーストされるようになる

で問題は②なのだが
ssh をpowershell からcallする方法はいろいろあるが、私の場合SSHサーバがubuntuの
なかにあるため 以下の2個の条件を満たす必要があった。
1.UTF8が表示できる
2.エスケープシーケンス(bashで色を変えているのだ)に対応する もしくは 無視する。
でssh clientのなかで両方を満たすのは私の調べた限りでは
msysgit
http://code.google.com/p/msysgit/downloads/list
がベスト

ほかのssh.netとかmingwとかopensshとかもみたけど1,2のどちらかがだめだった。
本当は設定とかでできるのかもしれないけど少なくとも私はわからなかった。

msysgitをインストールするとmsys.batができる。その中に以下の記述があるのでそれを変更すると起動と同時にpowershellが動作するようになる。

:startbash
call %COMSPEC% /c %BIN%bash --login -i
 ↓こう変更
:startbash
call %COMSPEC% /c %BIN%bash --login -i -c powershell

結局②①両方満たすためにはckwからmsys.batをよべばいい

というわけで最終的には
ckw.cfg
にこう書けばいい。

Ckw*exec:  C:\msysgit\msysgit\msys.bat
Ckw*chdir: c:\users\kouji

powershell->msysgit->ckwと三重なのがちょっとうざいが動きが良くなったのでまあ良しとする

なおこうしてもcat ???でutf8のテキストをよむと化ける。
それはnotepad とかで開くと確認できるのでそれで我慢。

あとpowershellで音量をいじれるようにした。
http://stackoverflow.com/questions/255419/how-can-i-mute-unmute-my-sound-from-powershell

これもいつか書くかもしれない。(shellからCOMを直接いじる話だ。面白いので読んで)