2008/03/30
拙著「Windows PowerShellポケットリファレンス」4/11発売!
というわけで今日の講演でお披露目した、技術評論社さんのほうで書いていた本が発売決定なのでご報告ですー
ご購入していただける方はうちのサイトからしていただくとちょっと嬉しいです。
第一部PowerShellの基礎100p、第二部コマンドレット200p、第三部.NETクラス・構造体100p計400pの三部構成です。
プログラム初心者からUNIXシェルを使いこなしている方まで幅広くお使いいただけると思います。ヘルプの間違いも可能な限り直っています。よろしくですー
あとかわいい女の子の絵もカットで入ってますよ!
元記事:http://blogs.wankuma.com/mutaguchi/archive/2008/03/30/130459.aspx2006/12/08
コマンドレットオンラインヘルプ作成 ver2
コマンドレットオンラインヘルプ作成
http://blogs.wankuma.com/mutaguchi/archive/2006/11/07/43965.aspx
の続編です。本文中のコマンドレットにリンクを張るようにしました。その他いろいろ改善。
旧バージョンをお使いの方は一度*.htmlを削除してください。ファイル名が変わりました。
function Sanitize{ #サニタイズ処理 param ([string]$strSource) return ($strSource.Replace("&","&").Replace("<","<").Replace(">",">")) } function MakeLink{ #用語にリンクを張る param ([string]$strSource) foreach ($key in $keys){ $strSource = $strSource -replace "(\s)($key)(\s)", ("`$1`$2`$3") } return ($strSource); } #キーワードを格納するArrayList $keys = new-object System.Collections.Arraylist get-help -category all | ?{"Cmdlet","Provider","HelpFile" -contains $_.category}| %{if ($_.Name -ne $null) {[void] $keys.Add($_.Name)}} # "Cmdlet","Provider","HelpFile"のカテゴリを持つヘルプをHTML化 get-help -category all | ?{"Cmdlet","Provider","HelpFile" -contains $_.category}| %{"" + $(MakeLink $(Sanitize (get-help $_.Name -detail|out-string))).Replace("`r`n",""| out-file($_.name + ".html")} $temp="
") + "戻る
名前 | 種類 | 簡易説明 |
---|---|---|
" + $_.name + " | " + $_.category + " | " + $_.synopsis + " | "} # Cmdlet,Provider,HelpFileの各ヘルプ get-help -category all | ?{"Cmdlet","Provider","HelpFile" -contains $_.category} | sort category,name| %{$temp+="
" + $_.name + " | " + $_.category + " | " + $_.synopsis + " | "} $temp+="
コマンドレットとパイプを多用するスクリプトの見やすい記法ってなんかないですかね?自分で読んでもよくわかりませんなこれw
あと気づいたこと。メソッドを呼び出すときはmethodname
(parameter)
のようにメソッド名と引数の間にスペースを入れてはいけない!VBSとかになれているとはまります。
関数の呼び出しはfuncname param1
param2
のようにする(引数は,で区切るのではない!)。関数の戻り値を読むときは$(funcname param1
param2)
のようにする。関数中で何か値が返されるとそれがそのまま関数の戻り値になる(returnは明示しなくてもいいということ。複数の値を返すと戻り値は[object[]]の配列になる。逆に値を返したくない場合は[void]にキャスト)
-replace演算子でサブマッチ文字列は$1,$2..に格納される。$は変数の頭文字なので ` (アクサン グラーブ)でエスケープし、`$1とする。もしくは''(シングルクォーテーション)でくくり'$1'のようにする。
そうそう、
get-help -category all | ?{"Cmdlet","Provider","HelpFile" -contains
$_.category}|
は、なんで
get-help -category Cmdlet,Provider,HelpFile
にしなかったかというと、このようにしてもなぜかAliasが含まれてしまうからです。Cmdletを指定するとAliasが含まれる仕様のようです。
でも-containsの使い方がわかってよかったです(ちょっとトリッキー?)
Copyright © 2005-2018 Daisuke Mutaguchi All rights reserved
mailto: mutaguchi at roy.hi-ho.ne.jp
プライバシーポリシー