2002年11月29日(金) 家賃を払いました
■ Cプロジェクト
- 22:20 色々書いたがまとまらず、完成せず。うーん、家で考えます。
■ Kプロジェクト
- 13:26〜13:40 ステータス確認。どんどんいい加減になっていく。
■ その他
- 10:20 わー家賃を払わねば。
- 11:05 PostgreSQL7.3がリリースされたようじゃ。pgsql-jp MLより。遠くの話だけど。
- 13:25 お昼に家賃を払った。皆ATMの操作に永遠時間をかけているけど何をしているのか。おれは振込みだけだったのですぐ終わってしまい寂しい。
2003年11月29日(土)
■ [java] 規約、テクニカルレポート (EJBコンポーネントに関するコンソーシアム)
「パフォーマンスに関するHints&Tips集 第1版」などが公開されている。このサイト、Mozillaだと綺麗に表示されないみたい。
■ 生活
- 一昨年4月の日記を補完。論じたり2階へ移動したり。
- 左目が痙攣する。どうしたら治るのかな。
2007年11月29日(木)
- 11月は色々とバタバタしていた。
- 週末に髪の毛切った。2ヶ月ぶり。
- C++の仕事は一段落した。次はJava。久しぶりだな。
■ [java] 開発環境
- Javaは環境構築が面倒。CentOSの場合JPackageというのが関係あるみたいなんだがよく分からん。SunのJDKをインストールして普通に動いてはいる。
- NetBeansを使ってみようとWindowsにバージョン5.5.1をインストールしてみた。ちょっと前にもインストールしたけど、このときは全然使わなかったのだ。で、Vimキーバインドのプラグイン(jVi)がよくできているのはいいんだけど、エディタの設定でタブの幅などを変更してもいつの間にか元に戻ってしまう問題を解決できず。
- 仕方ないのでEclipse 3.3.1.1もインストールしてみた。Eclipseは日本語化とか色々面倒という印象があったが、Pleiades All in Oneというパッケージが良くできていて簡単にインストールできた。
- Eclipseよくできてるなあ。が、キーバインドが問題だ。Eclimに期待しているが面倒でまだ試してない。
■ [life] 免許証の更新
2800円で証紙を買わされ、申請書に名前など書いて写真と一緒に提出。視力検査した後ビデオの視聴。すいていて助かった。
ビデオ視聴の途中で交通安全協会のおじさんが入ってきて、ビデオは20分間で私の説明が10分間あるのだと言い話を聞かされた。こんな制度はじめて。説明の内容は、今年の6月から中型免許というのが新設され、更新後はおれも中型免許になるのだとか。へー。
ビデオの中にハンマー投げをするシーンがあったがあれは不要だ。
■ やること
- 免許
請書
2021年11月29日(月)
■ [windows] Zipファイルを作るPowerShellスクリプト
初めてPowerShellスクリプトを書いた。フォルダパスとZipファイルパスを指定すると、フォルダ内の.exeと.dllをアーカイブしたZipファイルを作成するスクリプト。
param( [Parameter(Mandatory=$true)][String]$srcDir, [Parameter(Mandatory=$true)][String]$zipFile ) try { # エラーが発生したら処理を止める $ErrorActionPreference = "Stop" Write-Host "$srcDir --> $zipFile" # 一時フォルダを作成 $tmpDir = New-TemporaryFile | % { Remove-Item $_; New-Item -ItemType Directory $_-d } # 一時フォルダへ必要なファイルだけをコピー Copy-Item -Include *.exe,*.dll $srcDir\* $tmpDir # zipファイルが存在している場合はそれを削除 if (Test-Path $zipFile) { Remove-Item $zipFile } # zipファイルを作成 Compress-Archive $tmpDir/* $zipFile # zipファイルの内容を出力 Add-Type -AssemblyName System.IO.Compression.FileSystem [System.IO.Compression.ZipFile]::OpenRead($zipFile).Entries | Format-Table -Property FullName,LastWriteTime } finally { # 一時フォルダを削除 if ($tmpDir) { Remove-Item -Recurse $tmpDir } }
PowerShellスクリプトの実行方法
PowerShellスクリプトはデフォルトの設定だとセキュリティエラーになり実行できない。
PowerShellコマンドにExecutionPolicyオプションと共にスクリプトを指定すれば実行できる。
> powershell -ExecutionPolicy unrestricted ./make-zip.ps1 test test.zip test --> test.zip FullName LastWriteTime -------- ------------- a.exe 2021/11/29 16:26:54 +09:00 b.dll 2021/11/29 16:20:18 +09:00
スクリプトのパラメータ
スクリプトのパラメータはparamで指定できる。ちゃんとした説明を見つけられないがParameters in scriptsで少し説明されている。
上のスクリプトではParameter属性を使って2つのパラメータ(srcDirとzipFile)を必須に設定している。
エラー時にスクリプトを終了する
処理中にエラーが発生したらそこでスクリプトは止まってほしい。それを実現するには、$ErrorActionPreferenceにStopを設定すればいいようだ。
メッセージの出力
メッセージを出力するにはWrite-HostまたはWrite-Outputが使える。
一時フォルダの作成と削除
PowerShellには一時フォルダを作成する機能はなさそう。上のスクリプトではStack Overflowにあった例を真似して、一時ファイルを生成 → その一時ファイルのパスを利用して一時フォルダを作成、という手順で作っている。
なお、一時フォルダ作成処理内にある「%」はForEach-Objectのエイリアス。
作成した一時フォルダの削除はtry/finallyステートメントのfinally内で行うようにしている。
Zipファイルの作成
Zipファイルの作成にはCompress-Archiveが使える。
Zipファイル内のファイル一覧を出力
Zipファイルの作成は上述のCompress-Archiveでできるが、Zipファイル内のファイル一覧を得るコマンドレットは無いみたい。Zipファイルを展開するのならExpand-Archiveを使えるのだけれど。
ファイル一覧を得るには、.NETのライブラリを使う必要がありそう。System.IO.Compression.ZipFileというクラスが使える。
PowerShellでは、Add-Typeを使うとDLLを読み込んで.NETのクラスを使えるようになる。上のスクリプトではSystem.IO.Compression.FileSystem.dllを読み込んで ZipFile#OpenRead() を呼び出し、更にFormat-Tableを使って出力を行っている。