<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3434116510139620819</id><updated>2011-12-15T23:16:12.712+09:00</updated><category term='boo'/><category term='C#'/><category term='OpenCV'/><category term='VBA'/><category term='TV'/><category term='その他'/><category term='jrunscript'/><category term='PowerShell'/><category term='Windows'/><category term='vi'/><category term='Linux'/><category term='.Net'/><title type='text'>風待ち</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>73</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-9020291619591564622</id><published>2011-12-15T23:16:00.000+09:00</published><updated>2011-12-15T23:16:12.728+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jrunscript'/><title type='text'>jrunscriptでGMailを送信してみる</title><content type='html'>&lt;br /&gt;jrunscriptを使ってGMailを送信してみる。&lt;br /&gt;&lt;br /&gt;まず、JavaでMailを送信するためのライブラリをダウンロードする。&lt;br /&gt;&lt;br /&gt;JavaMail API 1.4.4&lt;br /&gt;&lt;a href="http://www.oracle.com/technetwork/java/javamail/index.html"&gt;http://www.oracle.com/technetwork/java/javamail/index.html&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ダウンロードした、”javamail1_4_4.zip”を解凍し、中から”mail.jar”だけ適当な場所にコピーする。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;下記のコードのアドレスやパスワードを実際に自分の利用するGMailアドレスに変更して、”mail.jar”をコピーしたフォルダと同じ場所に置き、下記のように実行する。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;gt;&amp;nbsp;jrunscript.exe -cp mail.jar -f SendGMail.js&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;--- SendGMail.js ---&lt;/div&gt;&lt;link href="http://www.thecomplex.plus.com/styles/SyntaxHighlighter.css" rel="stylesheet" type="text/css"&gt;&lt;/link&gt;&lt;div class="dp-highlighter" id="hlDiv"&gt;&lt;div class="bar"&gt;&lt;/div&gt;&lt;ol class="dp-c" start="1"&gt;&lt;li class="alt"&gt;&lt;span class="keyword"&gt;var&lt;/span&gt;&amp;nbsp;user&amp;nbsp;=&amp;nbsp;&lt;span class="string"&gt;"送信元アドレス@gmail.com"&lt;/span&gt;;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class=""&gt;&lt;span class="keyword"&gt;var&lt;/span&gt;&amp;nbsp;password&amp;nbsp;=&amp;nbsp;&lt;span class="string"&gt;"パスワード"&lt;/span&gt;;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span class="keyword"&gt;var&lt;/span&gt;&amp;nbsp;to&amp;nbsp;=&amp;nbsp;&lt;span class="string"&gt;"送信先アドレス"&lt;/span&gt;;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class=""&gt;&lt;span class="keyword"&gt;var&lt;/span&gt;&amp;nbsp;subject&amp;nbsp;=&amp;nbsp;&lt;span class="string"&gt;"件名"&lt;/span&gt;;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span class="keyword"&gt;var&lt;/span&gt;&amp;nbsp;body&amp;nbsp;=&amp;nbsp;&lt;span class="string"&gt;"本文"&lt;/span&gt;;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class=""&gt;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span class="keyword"&gt;var&lt;/span&gt;&amp;nbsp;props&amp;nbsp;=&amp;nbsp;&lt;span class="keyword"&gt;new&lt;/span&gt;&amp;nbsp;java.util.Properties();&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class=""&gt;props.put(&lt;span class="string"&gt;"mail.smtp.host"&lt;/span&gt;,&amp;nbsp;&lt;span class="string"&gt;"smtp.gmail.com"&lt;/span&gt;);&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class="alt"&gt;props.put(&lt;span class="string"&gt;"mail.smtp.port"&lt;/span&gt;,&amp;nbsp;&lt;span class="string"&gt;"587"&lt;/span&gt;);&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class=""&gt;props.put(&lt;span class="string"&gt;"mail.smtp.auth"&lt;/span&gt;,&amp;nbsp;&lt;span class="string"&gt;"true"&lt;/span&gt;);&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class="alt"&gt;props.put(&lt;span class="string"&gt;"mail.smtp.starttls.enable"&lt;/span&gt;,&amp;nbsp;&lt;span class="string"&gt;"true"&lt;/span&gt;);&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class=""&gt;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span class="keyword"&gt;var&lt;/span&gt;&amp;nbsp;session&amp;nbsp;=&amp;nbsp;Packages.javax.mail.Session.getInstance(props);&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class=""&gt;&lt;span class="keyword"&gt;var&lt;/span&gt;&amp;nbsp;mimeMessage&amp;nbsp;=&amp;nbsp;&lt;span class="keyword"&gt;new&lt;/span&gt;&amp;nbsp;Packages.javax.mail.internet.MimeMessage(session);&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class="alt"&gt;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class=""&gt;mimeMessage.setFrom(&lt;span class="keyword"&gt;new&lt;/span&gt;&amp;nbsp;Packages.javax.mail.internet.InternetAddress(user));&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class="alt"&gt;mimeMessage.setRecipient(Packages.javax.mail.Message.RecipientType.TO,&amp;nbsp;&lt;span class="keyword"&gt;new&lt;/span&gt;&amp;nbsp;Packages.javax.mail.internet.InternetAddress(to));&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class=""&gt;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class="alt"&gt;mimeMessage.setSubject(subject,&amp;nbsp;&lt;span class="string"&gt;"ISO-2022-JP"&lt;/span&gt;);&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class=""&gt;mimeMessage.setText(body,&amp;nbsp;&lt;span class="string"&gt;"ISO-2022-JP"&lt;/span&gt;);&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class="alt"&gt;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class=""&gt;mimeMessage.setSentDate(&lt;span class="keyword"&gt;new&lt;/span&gt;&amp;nbsp;java.util.Date());&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class="alt"&gt;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class=""&gt;&lt;span class="keyword"&gt;var&lt;/span&gt;&amp;nbsp;transport&amp;nbsp;=&amp;nbsp;session.getTransport(&lt;span class="string"&gt;"smtp"&lt;/span&gt;);&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class="alt"&gt;transport.connect(user,&amp;nbsp;password);&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class=""&gt;transport.sendMessage(mimeMessage,&amp;nbsp;mimeMessage.getAllRecipients());&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-9020291619591564622?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/9020291619591564622/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=9020291619591564622' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/9020291619591564622'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/9020291619591564622'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2011/12/jrunscriptgmail.html' title='jrunscriptでGMailを送信してみる'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-8525579186398710051</id><published>2011-11-06T21:44:00.000+09:00</published><updated>2011-11-06T21:44:40.372+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jrunscript'/><title type='text'>jrunscriptで自作のstaticなクラスメソッドを呼んでみる</title><content type='html'>&lt;br /&gt;足し算をするだけのstaticなクラスメソッドをjrunscriptで呼んでみる。&lt;br /&gt;&lt;br /&gt;カレントフォルダに下に書いたMyMethod.javaがあるとしてコンパイルしてから、classpathの指定に”.（ピリオド）”でカレントフォルダにパスを通して利用する。&lt;br /&gt;&lt;br /&gt;CMD &amp;gt; javac MyMethod.java&lt;br /&gt;CMD &amp;gt; jrunscript -classpath .&lt;br /&gt;js&amp;gt; Packages.MyMethod.add(1, 2);&lt;br /&gt;3&lt;br /&gt;js&amp;gt;&lt;br /&gt;&lt;br /&gt;--- MyMethod.java ---&lt;br /&gt;&lt;link href="http://www.thecomplex.plus.com/styles/SyntaxHighlighter.css" rel="stylesheet" type="text/css"&gt;&lt;/link&gt;&lt;div class="dp-highlighter" id="hlDiv"&gt;&lt;div class="bar"&gt;&lt;/div&gt;&lt;ol class="dp-j" start="1"&gt;&lt;li class="alt"&gt;&lt;span class="keyword"&gt;class&lt;/span&gt;&amp;nbsp;MyMethod&amp;nbsp;{&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class=""&gt;&amp;nbsp;&amp;nbsp;&lt;span class="keyword"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span class="keyword"&gt;static&lt;/span&gt;&amp;nbsp;&lt;span class="keyword"&gt;int&lt;/span&gt;&amp;nbsp;add(&lt;span class="keyword"&gt;int&lt;/span&gt;&amp;nbsp;a,&amp;nbsp;&lt;span class="keyword"&gt;int&lt;/span&gt;&amp;nbsp;b)&amp;nbsp;{&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class="alt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="keyword"&gt;return&lt;/span&gt;&amp;nbsp;(a&amp;nbsp;+&amp;nbsp;b);&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class=""&gt;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class="alt"&gt;}&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-8525579186398710051?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/8525579186398710051/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=8525579186398710051' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/8525579186398710051'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/8525579186398710051'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2011/11/jrunscriptstatic.html' title='jrunscriptで自作のstaticなクラスメソッドを呼んでみる'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-6453068705200739461</id><published>2011-11-06T21:35:00.001+09:00</published><updated>2011-11-06T21:35:32.275+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jrunscript'/><title type='text'>jrunscriptで複数のClass、複数のJarに同時にパスを通して使う</title><content type='html'>&lt;br /&gt;前々回と前回でClassもJarも使えるようになった。&lt;br /&gt;複数のClass、複数のJarを同時に使いたい時もあるので調べてみた。&lt;br /&gt;&lt;br /&gt;複数にパスを通すには、”;（セミコロン）”でパスを区切ればいけそうだ。&lt;br /&gt;&lt;br /&gt;通すファイルは前々回と前回に作ったClassとJar&lt;br /&gt;ここではカレントフォルダのMy.classとMy.jarにパスを通して使う。&lt;br /&gt;&lt;br /&gt;CMD &amp;gt; jrunscript -classpath ".;My.jar"&lt;br /&gt;js&amp;gt; var myClass = new Packages.My("class");&lt;br /&gt;js&amp;gt; myClass.getName();&lt;br /&gt;class&lt;br /&gt;js&amp;gt; var myJar = new Packages.foo.bar.My("jar");&lt;br /&gt;js&amp;gt; myJar.getName();&lt;br /&gt;jar&lt;br /&gt;js&amp;gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-6453068705200739461?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/6453068705200739461/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=6453068705200739461' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/6453068705200739461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/6453068705200739461'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2011/11/jrunscriptclassjar.html' title='jrunscriptで複数のClass、複数のJarに同時にパスを通して使う'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-5705932779979995394</id><published>2011-11-06T21:26:00.000+09:00</published><updated>2011-11-06T21:27:43.627+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jrunscript'/><title type='text'>jrunscriptで自作したJarを使ってみる</title><content type='html'>&lt;br /&gt;自分で作ったJarをjrunscriptから使ってみる。&lt;br /&gt;前回書いたClassとの違いはあまりないけど、1つだけ注意が必要。&lt;br /&gt;クラスパスを通すとき、クラスを使う場合は、そのクラスファイルのあるフォルダを指定してパスを通してあげればよかったけど、Jarの場合は使いたいJarファイル自体のパスを引数に渡してやる必要がある。&lt;br /&gt;&lt;br /&gt;Jarを作るところから順番に書いていく。&lt;br /&gt;&lt;br /&gt;カレントフォルダの下に&lt;br /&gt;foo&lt;br /&gt;└─bar&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;└─My.java&lt;br /&gt;があるとして&lt;br /&gt;&lt;br /&gt;CMD &amp;gt; javac foo\bar\My.java&lt;br /&gt;CMD &amp;gt; jar cvf My.jar foo\bar\*.class&lt;br /&gt;マニフェストが追加されました。&lt;br /&gt;foo/bar/My.class を追加中です。(入 = 446) (出 = 274)(38% 収縮されました)&lt;br /&gt;&lt;br /&gt;CMD &amp;gt; jrunscript -classpath My.jar&lt;br /&gt;js&amp;gt; var my = Packages.foo.bar.My();&lt;br /&gt;js&amp;gt; my.setName("foo");&lt;br /&gt;js&amp;gt; my.getName();&lt;br /&gt;foo&lt;br /&gt;js&amp;gt;&lt;br /&gt;&lt;br /&gt;--- My.java ---&lt;br /&gt;&lt;!-- Stylesheet link --&gt;&lt;link href="http://www.thecomplex.plus.com/styles/SyntaxHighlighter.css" rel="stylesheet" type="text/css"/&gt;&lt;!-- Code --&gt;&lt;div class="dp-highlighter" id="hlDiv"&gt;&lt;div class="bar"&gt;&lt;/div&gt;&lt;ol start="1" class="dp-j"&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="keyword"&gt;package&lt;/span&gt;&lt;span&gt;&amp;nbsp;foo.bar;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="keyword"&gt;class&lt;/span&gt;&lt;span&gt;&amp;nbsp;My&amp;nbsp;{&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;span class="keyword"&gt;private&lt;/span&gt;&lt;span&gt;&amp;nbsp;String&amp;nbsp;name;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;span class="keyword"&gt;public&lt;/span&gt;&lt;span&gt;&amp;nbsp;String&amp;nbsp;getName()&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span class="keyword"&gt;return&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="keyword"&gt;this&lt;/span&gt;&lt;span&gt;.name;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;span class="keyword"&gt;public&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="keyword"&gt;void&lt;/span&gt;&lt;span&gt;&amp;nbsp;setName(String&amp;nbsp;name)&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span class="keyword"&gt;this&lt;/span&gt;&lt;span&gt;.name&amp;nbsp;=&amp;nbsp;name;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;span class="keyword"&gt;public&lt;/span&gt;&lt;span&gt;&amp;nbsp;My()&amp;nbsp;{&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;span class="keyword"&gt;public&lt;/span&gt;&lt;span&gt;&amp;nbsp;My(String&amp;nbsp;name)&amp;nbsp;{&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="keyword"&gt;this&lt;/span&gt;&lt;span&gt;.name&amp;nbsp;=&amp;nbsp;name;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;}&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-5705932779979995394?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/5705932779979995394/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=5705932779979995394' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/5705932779979995394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/5705932779979995394'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2011/11/jrunscriptjar.html' title='jrunscriptで自作したJarを使ってみる'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-4508615702056799342</id><published>2011-11-06T21:14:00.000+09:00</published><updated>2011-11-06T21:14:03.610+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jrunscript'/><title type='text'>jrunscriptで自作したClassを使ってみる</title><content type='html'>&lt;br /&gt;自分で作ったBeansを使えれば既存のJavaコードを利用できるし、Webアプリの一部機能をバッチ化する場合に便利なので試してみた。&lt;br /&gt;Javaの標準クラスを使うサンプルは多かったけど自作クラスを使うのは見当たらなかった。&lt;br /&gt;いくつかのサイトを見て、どうやら使えるらしいということはわかっていたけど、どうやって使ったらいいのかよくわからなかった。&lt;br /&gt;試行錯誤した結果、下の方法でなんとか使えるようになった。&lt;br /&gt;&lt;br /&gt;jrunscriptでは自分で書いたクラスを使うには起動時に、使いたいクラスのパスを引数で渡してやる必要があるみたいだ。&lt;br /&gt;jrunscript -classpath に &amp;nbsp;”.（ピリオド）” を渡すとカレントフォルダをクラスパスに指定できる。&lt;br /&gt;&lt;br /&gt;カレントフォルダにMy.javaがあるとして、My.javaをコンパイルするところから使い方を順番に書いていく。&lt;br /&gt;&lt;br /&gt;CMD &amp;gt; javac My.java&lt;br /&gt;CMD &amp;gt; jrunscript -classpath .&lt;br /&gt;js&amp;gt; var my = new Packages.My();&lt;br /&gt;js&amp;gt; my.setName("foo");&lt;br /&gt;js&amp;gt; my.getName();&lt;br /&gt;foo&lt;br /&gt;js&amp;gt; var my2 = new Packages.My("bar");&lt;br /&gt;js&amp;gt; my2.getName();&lt;br /&gt;bar&lt;br /&gt;js&amp;gt;&lt;br /&gt;&lt;br /&gt;--- My.java ---&lt;br /&gt;&lt;link href="http://www.thecomplex.plus.com/styles/SyntaxHighlighter.css" rel="stylesheet" type="text/css"&gt;&lt;/link&gt;&lt;div class="dp-highlighter" id="hlDiv"&gt;&lt;div class="bar"&gt;&lt;/div&gt;&lt;ol class="dp-j" start="1"&gt;&lt;li class="alt"&gt;&lt;span class="keyword"&gt;class&lt;/span&gt;&amp;nbsp;My&amp;nbsp;{&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class=""&gt;&amp;nbsp;&amp;nbsp;&lt;span class="keyword"&gt;private&lt;/span&gt;&amp;nbsp;String&amp;nbsp;name;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class="alt"&gt;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class=""&gt;&amp;nbsp;&amp;nbsp;&lt;span class="keyword"&gt;public&lt;/span&gt;&amp;nbsp;String&amp;nbsp;getName()&amp;nbsp;{&amp;nbsp;&lt;span class="keyword"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span class="keyword"&gt;this&lt;/span&gt;.name;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class="alt"&gt;&amp;nbsp;&amp;nbsp;&lt;span class="keyword"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span class="keyword"&gt;void&lt;/span&gt;&amp;nbsp;setName(String&amp;nbsp;name)&amp;nbsp;{&amp;nbsp;&lt;span class="keyword"&gt;this&lt;/span&gt;.name&amp;nbsp;=&amp;nbsp;name;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class=""&gt;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class="alt"&gt;&amp;nbsp;&amp;nbsp;&lt;span class="keyword"&gt;public&lt;/span&gt;&amp;nbsp;My()&amp;nbsp;{&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class=""&gt;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class="alt"&gt;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class=""&gt;&amp;nbsp;&amp;nbsp;&lt;span class="keyword"&gt;public&lt;/span&gt;&amp;nbsp;My(String&amp;nbsp;name)&amp;nbsp;{&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class="alt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="keyword"&gt;this&lt;/span&gt;.name&amp;nbsp;=&amp;nbsp;name;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class=""&gt;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class="alt"&gt;}&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-4508615702056799342?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/4508615702056799342/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=4508615702056799342' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/4508615702056799342'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/4508615702056799342'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2011/11/jrunscriptclass.html' title='jrunscriptで自作したClassを使ってみる'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-3925616744725774237</id><published>2011-11-06T20:59:00.000+09:00</published><updated>2011-11-06T20:59:29.201+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jrunscript'/><title type='text'>jrunscriptを試してみる</title><content type='html'>&lt;br /&gt;WindowsでもLinuxでもSunOS（かなり古いが）でも、どこでも動くバッチが必要になったので”jrunscript”というJavaで動くJavaScriptを使ってみる。&lt;br /&gt;知らなかったが、Java6からJDKに入ってるらしい。&lt;br /&gt;&lt;br /&gt;少しだけ試してみた。&lt;br /&gt;&lt;br /&gt;※JDKのbinフォルダにパスを通しておいたほうが楽。&lt;br /&gt;&lt;br /&gt;■インタラクティブ シェルで使う&lt;br /&gt;CMD &amp;gt; jrunscript&lt;br /&gt;js&amp;gt;print("Hello World!\n");&lt;br /&gt;js&amp;gt;quit(); //終了&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;■ワンラインでスプリクトを実行する&lt;br /&gt;CMD &amp;gt; jrunscript.exe -e "print('Hello World!\n');"&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;■スプリクトを書いたファイルを実行する&lt;br /&gt;CMD &amp;gt; jrunscript -f helloworld.js&lt;br /&gt;Hello World!&lt;br /&gt;&lt;br /&gt;--- helloworld.js ---&lt;link href="http://www.thecomplex.plus.com/styles/SyntaxHighlighter.css" rel="stylesheet" type="text/css"&gt;&lt;/link&gt;&lt;br /&gt;&lt;div class="dp-highlighter" id="hlDiv"&gt;&lt;div class="bar"&gt;&lt;/div&gt;&lt;ol class="dp-c" start="1"&gt;&lt;li class="alt"&gt;print(&lt;span class="string"&gt;"Hello&amp;nbsp;World!\n"&lt;/span&gt;);&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-3925616744725774237?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/3925616744725774237/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=3925616744725774237' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/3925616744725774237'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/3925616744725774237'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2011/11/jrunscript.html' title='jrunscriptを試してみる'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-3081377871921556735</id><published>2011-11-06T20:43:00.000+09:00</published><updated>2011-11-06T20:46:45.118+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><title type='text'>PowerShellでCD-ROMドライブを開閉する</title><content type='html'>&lt;br /&gt;ドライブを開けることは知っていたけど、閉めることもできるんじゃないかと調べてみたらどうやらできるようだ。&lt;br /&gt;⇒　&lt;a href="http://thepowershellguy.com/blogs/posh/archive/2008/08/04/powershell.aspx"&gt;http://thepowershellguy.com/blogs/posh/archive/2008/08/04/powershell.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;紹介されていたのは開閉どちらにでも使えるものだったけど、自分としては開ける、閉めるは別コマンドの方がよかったので分けてみた。&lt;br /&gt;コードが重複しているけど、分けた方が使いやすいと思ったので。&lt;br /&gt;&lt;div&gt;&lt;br /&gt;--- Open-CDDrive.ps1 ---&lt;br /&gt;&lt;link href="http://www.thecomplex.plus.com/styles/SyntaxHighlighter.css" rel="stylesheet" type="text/css"&gt;&lt;/link&gt;&lt;div class="dp-highlighter" id="hlDiv"&gt;&lt;div class="bar"&gt;&lt;/div&gt;&lt;ol class="dp-rb" start="1"&gt;&lt;li class="alt"&gt;&lt;span class="variable"&gt;$winnm&lt;/span&gt;&amp;nbsp;=&amp;nbsp;Add-Type&amp;nbsp;-memberDefinition&amp;nbsp;@&lt;span class="string"&gt;"&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;li class=""&gt;&lt;span class="string"&gt;&amp;nbsp;&amp;nbsp;[DllImport("&lt;/span&gt;winmm.dll&lt;span class="string"&gt;",&amp;nbsp;CharSet&amp;nbsp;=&amp;nbsp;CharSet.Ansi)]&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span class="string"&gt;&amp;nbsp;&amp;nbsp;public&amp;nbsp;static&amp;nbsp;extern&amp;nbsp;int&amp;nbsp;mciSendStringA(&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;li class=""&gt;&lt;span class="string"&gt;&amp;nbsp;&amp;nbsp;string&amp;nbsp;lpstrCommand,&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span class="string"&gt;&amp;nbsp;&amp;nbsp;string&amp;nbsp;lpstrReturnString,&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;li class=""&gt;&lt;span class="string"&gt;&amp;nbsp;&amp;nbsp;int&amp;nbsp;uReturnLength,&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span class="string"&gt;&amp;nbsp;&amp;nbsp;IntPtr&amp;nbsp;hwndCallback);&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;li class=""&gt;&lt;span class="string"&gt;"&lt;/span&gt;@&amp;nbsp;&amp;nbsp;-ErrorAction&amp;nbsp;&lt;span class="string"&gt;'SilentlyContinue'&lt;/span&gt;&amp;nbsp;-passthru&amp;nbsp;-name&amp;nbsp;mciSendString&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class="alt"&gt;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class=""&gt;&lt;span class="variable"&gt;$winnm&lt;/span&gt;:&lt;span class="symbol"&gt;:mciSendStringA&lt;/span&gt;(&lt;span class="string"&gt;"set&amp;nbsp;cdaudio&amp;nbsp;door&amp;nbsp;open"&lt;/span&gt;&amp;nbsp;,&lt;span class="variable"&gt;$null&lt;/span&gt;&amp;nbsp;,0&amp;nbsp;,0)&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;--- Closed-CDDrive.ps1 ---&lt;link href="http://www.thecomplex.plus.com/styles/SyntaxHighlighter.css" rel="stylesheet" type="text/css"&gt;&lt;/link&gt;&lt;br /&gt;&lt;div class="dp-highlighter" id="hlDiv"&gt;&lt;div class="bar"&gt;&lt;/div&gt;&lt;ol class="dp-rb" start="1"&gt;&lt;li class="alt"&gt;&lt;span class="variable"&gt;$winnm&lt;/span&gt;&amp;nbsp;=&amp;nbsp;Add-Type&amp;nbsp;-memberDefinition&amp;nbsp;@&lt;span class="string"&gt;"&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;li class=""&gt;&lt;span class="string"&gt;&amp;nbsp;&amp;nbsp;[DllImport("&lt;/span&gt;winmm.dll&lt;span class="string"&gt;",&amp;nbsp;CharSet&amp;nbsp;=&amp;nbsp;CharSet.Ansi)]&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span class="string"&gt;&amp;nbsp;&amp;nbsp;public&amp;nbsp;static&amp;nbsp;extern&amp;nbsp;int&amp;nbsp;mciSendStringA(&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;li class=""&gt;&lt;span class="string"&gt;&amp;nbsp;&amp;nbsp;string&amp;nbsp;lpstrCommand,&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span class="string"&gt;&amp;nbsp;&amp;nbsp;string&amp;nbsp;lpstrReturnString,&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;li class=""&gt;&lt;span class="string"&gt;&amp;nbsp;&amp;nbsp;int&amp;nbsp;uReturnLength,&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span class="string"&gt;&amp;nbsp;&amp;nbsp;IntPtr&amp;nbsp;hwndCallback);&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/li&gt;&lt;li class=""&gt;&lt;span class="string"&gt;"&lt;/span&gt;@&amp;nbsp;&amp;nbsp;-ErrorAction&amp;nbsp;&lt;span class="string"&gt;'SilentlyContinue'&lt;/span&gt;&amp;nbsp;-passthru&amp;nbsp;-name&amp;nbsp;mciSendString&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class="alt"&gt;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class=""&gt;&lt;span class="variable"&gt;$winnm&lt;/span&gt;:&lt;span class="symbol"&gt;:mciSendStringA&lt;/span&gt;(&lt;span class="string"&gt;"set&amp;nbsp;cdaudio&amp;nbsp;door&amp;nbsp;closed"&lt;/span&gt;&amp;nbsp;,&lt;span class="variable"&gt;$null&lt;/span&gt;&amp;nbsp;,0&amp;nbsp;,0)&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-3081377871921556735?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/3081377871921556735/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=3081377871921556735' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/3081377871921556735'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/3081377871921556735'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2011/11/powershellcd-rom.html' title='PowerShellでCD-ROMドライブを開閉する'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-6544231864737155962</id><published>2011-10-12T23:01:00.000+09:00</published><updated>2011-10-12T23:01:23.361+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VBA'/><title type='text'>VBScriptで数値を0で埋めて表示してみる</title><content type='html'>&lt;br /&gt;&lt;br /&gt;VBScriptでは0埋めでフォーマットする関数は標準で用意されていないようだ。&lt;br /&gt;&lt;br /&gt;こんな感じで書いて&lt;br /&gt;&lt;br /&gt;Format("0000000000", 120)&lt;br /&gt;&lt;br /&gt;0000000120&lt;br /&gt;&lt;br /&gt;っと表示したかったけど楽にはできないみたい。&lt;br /&gt;&lt;br /&gt;そこでちょっとしたものを書いてみた。&lt;br /&gt;&lt;br /&gt;普通に0埋め用のフォーマットをする関数なら他でも紹介されていたので、ここではエラー処理などは無視して、関数にするほどもない、一箇所だけそんな0埋めでフォーマットをしたい人向けにした。&lt;br /&gt;&lt;br /&gt;内容は単純で、&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;表示したい桁 - 数値の桁&lt;/li&gt;&lt;li&gt;その結果の数値をSpace関数で数値分の空白文字にする&lt;/li&gt;&lt;li&gt;空白文字をReplace関数を使って指定した文字に置き換える&lt;/li&gt;&lt;/ul&gt;っというのを一行でしているだけ。&lt;br /&gt;VBScriptでちょっとしたバッチのために、だらだらと関数を書いたり、共通関数を外だしするのもなんだし。&lt;br /&gt;小さいバッチはあっさりしてた方がメンテナンスも楽だからね。&lt;link href="http://www.thecomplex.plus.com/styles/SyntaxHighlighter.css" rel="stylesheet" type="text/css"&gt;&lt;/link&gt;&lt;br /&gt;&lt;div class="dp-highlighter" id="hlDiv"&gt;&lt;div class="bar"&gt;&lt;/div&gt;&lt;ol class="dp-vb" start="1"&gt;&lt;li class="alt"&gt;&lt;span class="comment"&gt;'VBScriptで数値を0で埋めて表示する&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class=""&gt;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span class="comment"&gt;'表示したい桁数&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class=""&gt;length&amp;nbsp;=&amp;nbsp;10&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class="alt"&gt;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class=""&gt;&lt;span class="comment"&gt;'表示する数値&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class="alt"&gt;value&amp;nbsp;=&amp;nbsp;120&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class=""&gt;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span class="comment"&gt;'0で埋める&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class=""&gt;character&amp;nbsp;=&amp;nbsp;0&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class="alt"&gt;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class=""&gt;&lt;span class="comment"&gt;'10桁表示で120を表し、空いている部分は0で埋める&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class="alt"&gt;result&amp;nbsp;=&amp;nbsp;Replace(Space(length&amp;nbsp;-&amp;nbsp;Len(value))&amp;nbsp;&amp;amp;&amp;nbsp;value,&amp;nbsp;Space(1),&amp;nbsp;character)&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class=""&gt;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li class="alt"&gt;WScript.Echo&amp;nbsp;result&amp;nbsp;&lt;span class="comment"&gt;'&amp;nbsp;=&amp;gt;&amp;nbsp;0000000120&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-6544231864737155962?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/6544231864737155962/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=6544231864737155962' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/6544231864737155962'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/6544231864737155962'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2011/10/vbscript0.html' title='VBScriptで数値を0で埋めて表示してみる'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-3301412558694508444</id><published>2011-10-10T20:26:00.000+09:00</published><updated>2011-10-10T20:30:31.708+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vi'/><title type='text'>Windowsでvimのopsplorer.vimを使ってみた。</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;vimをIDEっぽくできないかと探していると、opsplorer.vimなるものを見つけた。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;vim onlineからダウンロード。&amp;nbsp;リンク：&lt;a href="http://www.vim.org/scripts/script.php?script_id=362"&gt;opsplorer.vim&lt;/a&gt;&lt;/li&gt;&lt;li&gt;pluginフォルダにopsplorer.vimを配置。（KaoriYaのvimを使っているなら runtime/pluginの下）&lt;/li&gt;&lt;li&gt;vimを起動して :opsplorer&lt;/li&gt;&lt;/ol&gt;見つけたのはいいが、使ってみるも動かない。&lt;br /&gt;&lt;br /&gt;どうやら、Windowsには対応していないようだ。&lt;br /&gt;&lt;div&gt;紹介サイトのスクリーンショットがMacばっかりだったからなんとなく察したけど。&lt;br /&gt;&lt;div&gt;他にも困っている人がいるだろうとさらに調べると対応版を作ってくれている人がいた。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;a href="http://friendfeed.com/mattn"&gt;mattn&lt;/a&gt;&lt;br /&gt;opsplorer.vimをwin32でも動くようにしてみた。便利かどうかは知らない。&lt;a href="http://gist.github.com/333696"&gt;http://gist.github.com/333696&lt;/a&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;十分に便利でありがたいです。&lt;/div&gt;&lt;div&gt;githubで公開されているようなのでダウンロードして、pluginフォルダにおいてみる。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;起動するとうまく動いてくれたようだ。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;が！&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ここでちょっとした問題が・・・&lt;/div&gt;&lt;div&gt;フォルダの展開やファイルの選択系はWindowsに対応してくれたようだけど、コマンド系（ファイルのコピーやリネーム、削除）ができない。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ソースを見てみると、ファイルを削除しているであろう関数FileDelete()の中で呼び出してるコマンドが"rm"だった・・・&lt;/div&gt;&lt;div&gt;これはWindowsでは動かんだろうな。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;system()関数で呼び出されるのは、たぶん、CMDのコマンドだろうからここは"del"でないといけないはず。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;PowerShellを常時使ってるから、このあたりの機能はなくてもいいんだけど、連休中にやることもなかったので、vimマクロはほとんど触ったことがないけどいじってみた。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;詳細は一番下にリンクを張ったコードをダウンロードして見てもらえばいいけど、外部コマンドを呼んでいるっぽいところを変更しただけ。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;let i=system("rm -f ".filename)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;↓&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;if has("win32")&lt;/div&gt;&lt;div&gt;let filename = substitute(filename,".*[\\/]",'','')&lt;/div&gt;&lt;div&gt;let i=system("del /Q ".filename)&lt;/div&gt;&lt;div&gt;else&lt;/div&gt;&lt;div&gt;let i=system("rm -f ".filename)&lt;/div&gt;&lt;div&gt;endif&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Windowsならフォルダの区切り文字を整理して、"del"コマンドを呼ぶ。&lt;/div&gt;&lt;div&gt;削除、コピー、リネーム、移動を変更してみた。&lt;/div&gt;&lt;div&gt;大体動いているようだけど、なぜか移動だけは動かなかった。&lt;/div&gt;&lt;div&gt;わかる人、助けて下さいm(_ _)m&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;他にも困ってる人がいると思うので変更したソースを公開する。&lt;/div&gt;&lt;div&gt;本来はgithubを使ったほうがいいんだろうけど、アカウントを持ってないので今回はやめておく。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="https://sites.google.com/site/kazematiblogspot/opsplorer.vim"&gt;opsplorer.vim（Windows動く版）&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-3301412558694508444?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/3301412558694508444/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=3301412558694508444' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/3301412558694508444'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/3301412558694508444'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2011/10/windowsvimopsplorervim.html' title='Windowsでvimのopsplorer.vimを使ってみた。'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-8099966824276907556</id><published>2011-07-18T15:44:00.007+09:00</published><updated>2011-07-18T16:00:02.489+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><title type='text'>Windows7のPowerShellでDVDドライブからのディスク取り出し</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" &gt;Windows7を使い始めて、&lt;span class="Apple-style-span" style="line-height: 25px; font-family: arial, sans-serif; "&gt;&lt;a href="http://kazemati.blogspot.com/2008/09/blog-post.html" class="l vst" style="font-family: arial, sans-serif; color: rgb(85, 26, 139); cursor: pointer; "&gt;リムーバブルディスクの取り出し&lt;/a&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 25px; "&gt;をやってみると動かなかったので修正。&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 25px;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="line-height: 25px; " &gt;前のようにWScript.Shellを使って&lt;/span&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="line-height: 25px;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="line-height: 25px;" &gt;&lt;div&gt;&amp;gt; $shell = New-Object -ComObject WScript.Shell&lt;/div&gt;&lt;div&gt;&amp;gt; $Shell.Application.NameSpace(17).ParseName('D:\').InvokeVerb("取り出し(&amp;amp;J)")&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial, sans-serif; line-height: 25px; " &gt;っとやろうとしたけどShellの下にApplication.NameSpaceってのがないらしく呼び出せなかった。&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial, sans-serif; line-height: 25px; " &gt;そこで調べてみるとWMPlayerの機能を呼び出しても取り出しができそうだったので、そっちでやってみた。&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial, sans-serif; line-height: 25px; " &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: arial, sans-serif; line-height: 25px; "&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&amp;gt; $wmp = New-Object -ComObject WMPlayer.OCX.7&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&amp;gt; $wmp.cdromCollection.Item(0).Eject()&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" &gt;自分の場合はドライブが1つしかないので試せないけど、複数ドライブなら”Item(0)”の部分を変えればいけると思う。&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-8099966824276907556?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/8099966824276907556/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=8099966824276907556' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/8099966824276907556'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/8099966824276907556'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2011/07/windows7powershelldvd.html' title='Windows7のPowerShellでDVDドライブからのディスク取り出し'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-8589702985447477948</id><published>2011-05-04T00:10:00.003+09:00</published><updated>2011-05-04T00:38:54.718+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='その他'/><title type='text'>Oracle SQLでDATE型とUNIXタイムを相互に変換する</title><content type='html'>&lt;div&gt;SQLだけでやると一文が長くなってしまうので、頻繁に利用するなら&lt;/div&gt;&lt;div&gt;PL/SQLで関数を作っておいた方がいいと思う。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;自分の場合は一回限りなのでSQLのみでやりたかった。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;※Oracle XEで検証&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;-- DATE型からUNIXタイムに&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;select trunc(to_number(&lt;/div&gt;&lt;div&gt;            to_date('&lt;b&gt;&lt;span class="Apple-style-span"&gt;調べたい日時を入れる&lt;/span&gt;&lt;/b&gt;', 'YYYY/MM/DD HH24:MI:SS')&lt;/div&gt;&lt;div&gt;          - to_date('1970/01/01 00:00:00', 'YYYY/MM/DD HH24:MI:SS')&lt;/div&gt;&lt;div&gt;          ) * (24 * 60 * 60)&lt;/div&gt;&lt;div&gt;       ) as unixtimestmp&lt;/div&gt;&lt;div&gt;  from dual;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;-- 例　２０１１年５月４日　午前１時２０分３０秒&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;select trunc(to_number(&lt;/div&gt;&lt;div&gt;            to_date('&lt;b&gt;&lt;span class="Apple-style-span"&gt;2011/05/04 01:20:30&lt;/span&gt;&lt;/b&gt;', 'YYYY/MM/DD HH24:MI:SS')&lt;/div&gt;&lt;div&gt;          - to_date('1970/01/01 00:00:00', 'YYYY/MM/DD HH24:MI:SS')&lt;/div&gt;&lt;div&gt;          ) * (24 * 60 * 60)&lt;/div&gt;&lt;div&gt;       ) as unixtimestmp&lt;/div&gt;&lt;div&gt;  from dual;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;結果：　1304472030&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;-- UNIXタイムからDATE型に&lt;/div&gt;&lt;div&gt;-- ここではわかりやすいようにto_charで変換して出力している&lt;/div&gt;&lt;div&gt;&lt;div&gt;select to_char((&lt;/div&gt;&lt;div&gt;        to_date('1970/01/01 00:00:00', 'YYYY/MM/DD HH24:MI:SS')&lt;/div&gt;&lt;div&gt;        + (&lt;b&gt;&lt;span class="Apple-style-span"&gt;調べたいUNIXタイムを入れる&lt;/span&gt;&lt;/b&gt;/ (24 * 60 * 60))&lt;/div&gt;&lt;div&gt;       ), 'YYYY/MM/DD HH24:MI:SS') as utc&lt;/div&gt;&lt;div&gt;  from dual;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;-- 例　1304472030 (２０１１年５月４日　午前１時２０分３０秒)&lt;/div&gt;&lt;div&gt;&lt;div&gt;select to_char((&lt;/div&gt;&lt;div&gt;        to_date('1970/01/01 00:00:00', 'YYYY/MM/DD HH24:MI:SS')&lt;/div&gt;&lt;div&gt;        + (&lt;span class="Apple-style-span"&gt;&lt;b&gt;1304472030&lt;/b&gt; &lt;/span&gt;/ (24 * 60 * 60))&lt;/div&gt;&lt;div&gt;       ), 'YYYY/MM/DD HH24:MI:SS') as utc&lt;/div&gt;&lt;div&gt;  from dual;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;結果：　2011/05/04 01:20:30&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;-- 調べたいUNIXタイムが標準時で記録されていた場合&lt;/div&gt;&lt;div&gt;-- 日本標準時で出力したければ、９時間足す必要がある&lt;/div&gt;&lt;div&gt;select to_char((&lt;/div&gt;&lt;div&gt;&lt;div&gt;        to_date('1970/01/01 00:00:00', 'YYYY/MM/DD HH24:MI:SS')&lt;/div&gt;&lt;div&gt;        + ((1304472030 &lt;span class="Apple-style-span"&gt;&lt;b&gt;+ (9 * 60 * 60)&lt;/b&gt;&lt;/span&gt;)/ (24 * 60 * 60))&lt;/div&gt;&lt;div&gt;        ), 'YYYY/MM/DD HH24:MI:SS') as jst&lt;/div&gt;&lt;div&gt;  from dual;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;結果：　2011/05/04 10:20:30&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-8589702985447477948?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/8589702985447477948/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=8589702985447477948' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/8589702985447477948'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/8589702985447477948'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2011/05/oracle-sqldateunix.html' title='Oracle SQLでDATE型とUNIXタイムを相互に変換する'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-42830046202588810</id><published>2010-12-01T22:07:00.003+09:00</published><updated>2010-12-01T22:17:25.153+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><title type='text'>PowerShellで作成したフォルダに直ぐに移動（ただのメモ）</title><content type='html'>フォルダを作成するとき、直ぐにそのフォルダに移動して作業をしたいことが多いと思う。&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;でも、フォルダが多い場所で作成すると、目的のフォルダに移動するのはなかなか時間がかかる。&lt;/div&gt;&lt;div&gt;特に日本語のフォルダに移動するときは、Ｔａｂを連打したり、フォルダ名の一部を入力、またはペースとして補完するなど、わりと面倒くさい。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;そんな時、作成したフォルダに直ぐに移動するには、PowerShellでは以下のようにすればよい。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&gt; mkdir "適当なフォルダ名" | cd $_&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;mkdirをすると、DirectoryInfoオブジェクトが返ってくるのでそれをパイプして移動する。 &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;※単純だけど、なんとなく忘れてしまいそうなＴｉｐsなのでメモ&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-42830046202588810?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/42830046202588810/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=42830046202588810' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/42830046202588810'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/42830046202588810'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2010/12/powershell.html' title='PowerShellで作成したフォルダに直ぐに移動（ただのメモ）'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-145227727252290149</id><published>2010-11-30T21:08:00.003+09:00</published><updated>2010-11-30T21:17:41.266+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><title type='text'>Pingの結果をPowerShellっぽく取得してみる</title><content type='html'>PowerShellからＰｉｎｇ打つことはもちろんできるが、バッチファイルの中で利用すると結果が一々コンソールに出力されてちょっと邪魔な時がある。&lt;div&gt;&lt;br /&gt;&lt;div&gt;バッチファイルの中で知りたいのは、そのＩＰのマシンが生きているかどうかなので、結果は「Ｔｒｕｅ」か「Ｆａｌｓｅ」で十分だ。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;そこで、Ｐｉｎｇの結果をラップしてPowerShellで扱いやすいようにしてみる。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;■使い方&lt;/div&gt;&lt;div&gt;&gt; Get-PingResult www.google.com #成功時&lt;/div&gt;&lt;div&gt;&lt;div&gt;Value Reply&lt;/div&gt;&lt;div&gt;----- -----&lt;/div&gt;&lt;div&gt; True {www.l.google.com [66.249.89.104]に ping を送...&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&gt; $a = Get-PingResult www.google.com #変数に入れてみる&lt;/div&gt;&lt;div&gt;&gt; $a.Reply&lt;/div&gt;&lt;div&gt;www.l.google.com [66.249.89.104]に ping を送信しています 32 バイトのデータ:&lt;/div&gt;&lt;div&gt;66.249.89.104 からの応答: バイト数 =32 時間 =19ms TTL=57&lt;/div&gt;&lt;div&gt;66.249.89.104 からの応答: バイト数 =32 時間 =21ms TTL=57&lt;/div&gt;&lt;div&gt;66.249.89.104 からの応答: バイト数 =32 時間 =19ms TTL=57&lt;/div&gt;&lt;div&gt;66.249.89.104 からの応答: バイト数 =32 時間 =20ms TTL=57&lt;/div&gt;&lt;div&gt;66.249.89.104 の ping 統計:&lt;/div&gt;&lt;div&gt;    パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、&lt;/div&gt;&lt;div&gt;ラウンド トリップの概算時間 (ミリ秒):&lt;/div&gt;&lt;div&gt;    最小 = 19ms、最大 = 21ms、平均 = 19ms&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&gt; Get-PingResult www.google.coma #失敗時&lt;/div&gt;&lt;div&gt;&lt;div&gt;Value Reply&lt;/div&gt;&lt;div&gt;----- -----&lt;/div&gt;&lt;div&gt;False ping 要求ではホスト www.google.coma が見つかり...&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;!-- Stylesheet link --&gt;&lt;link href="http://www.thecomplex.plus.com/styles/SyntaxHighlighter.css" rel="stylesheet" type="text/css"&gt;&lt;!-- Code --&gt;&lt;div class="dp-highlighter" id="hlDiv"&gt;&lt;ol start="1" class="dp-rb"&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="keyword"&gt;function&lt;/span&gt;&lt;span&gt; Get-PingResult([String]&lt;/span&gt;&lt;span class="variable"&gt;$IP&lt;/span&gt;&lt;span&gt;) {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;　&lt;span class="variable"&gt;$reply&lt;/span&gt;&lt;span&gt; = C:\Windows\System32\PING.EXE &lt;/span&gt;&lt;span class="variable"&gt;$IP&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;　&lt;span class="comment"&gt;#余分な空白行を削除する&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;　&lt;span class="variable"&gt;$reply&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="variable"&gt;$reply&lt;/span&gt;&lt;span&gt; | % { &lt;/span&gt;&lt;span class="keyword"&gt;if&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span class="variable"&gt;$_&lt;/span&gt;&lt;span&gt; -ne &lt;/span&gt;&lt;span class="string"&gt;""&lt;/span&gt;&lt;span&gt;) { &lt;/span&gt;&lt;span class="variable"&gt;$_&lt;/span&gt;&lt;span&gt; }}  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;　&lt;span class="comment"&gt;#上手くいったかどうかは結果の行数で判断する&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;　&lt;span class="variable"&gt;$success&lt;/span&gt;&lt;span&gt; = 9  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;　&lt;span class="variable"&gt;$result&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; psobject  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;　&lt;span class="keyword"&gt;if&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span class="variable"&gt;$reply&lt;/span&gt;&lt;span&gt;.Length -eq &lt;/span&gt;&lt;span class="variable"&gt;$success&lt;/span&gt;&lt;span&gt;) {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;　　&lt;span class="variable"&gt;$result&lt;/span&gt;&lt;span&gt; | &lt;/span&gt;&lt;span class="builtin"&gt;Add-Member&lt;/span&gt;&lt;span&gt; -MemberType NoteProperty -Name &lt;/span&gt;&lt;span class="string"&gt;"Value"&lt;/span&gt;&lt;span&gt; -Value &lt;/span&gt;&lt;span class="variable"&gt;$true&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;　} &lt;span class="keyword"&gt;else&lt;/span&gt;&lt;span&gt; {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;　　&lt;span class="variable"&gt;$result&lt;/span&gt;&lt;span&gt; | &lt;/span&gt;&lt;span class="builtin"&gt;Add-Member&lt;/span&gt;&lt;span&gt; -MemberType NoteProperty -Name &lt;/span&gt;&lt;span class="string"&gt;"Value"&lt;/span&gt;&lt;span&gt; -Value &lt;/span&gt;&lt;span class="variable"&gt;$false&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;　}  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;　&lt;span class="variable"&gt;$result&lt;/span&gt;&lt;span&gt; | &lt;/span&gt;&lt;span class="builtin"&gt;Add-Member&lt;/span&gt;&lt;span&gt; -MemberType NoteProperty -Name &lt;/span&gt;&lt;span class="string"&gt;"Reply"&lt;/span&gt;&lt;span&gt; -Value &lt;/span&gt;&lt;span class="variable"&gt;$reply&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;　&lt;span class="keyword"&gt;return&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$result&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;}  &lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-145227727252290149?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/145227727252290149/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=145227727252290149' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/145227727252290149'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/145227727252290149'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2010/11/pingpowershell.html' title='Pingの結果をPowerShellっぽく取得してみる'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-5774877893221702761</id><published>2010-11-30T20:48:00.004+09:00</published><updated>2010-11-30T21:18:20.225+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><title type='text'>PowerShellで文字列をバイトで区切って切り出す</title><content type='html'>&lt;div&gt;メールの本文を生成する場合などに、きれいにフォーマットするためスペースなどで埋めたり、文字数でカットして成形したい時がある。&lt;/div&gt;&lt;div&gt;ただ、PowerShellだと、半角の「ABCD」というのと、全角の「ＡＢＣＤ」はおなじ４文字としてカウントされる。&lt;/div&gt;&lt;div&gt;そこでVBのLeftBのようにバイト数で切り取ってみる。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;■使い方&lt;/div&gt;&lt;div&gt;&lt;div&gt;&gt; Get-SubStringBytes "ABCD" 2 2 #半角文字を２バイト目から２バイト切り取る&lt;/div&gt;&lt;div&gt;CD&lt;/div&gt;&lt;div&gt;&gt; Get-SubStringBytes "ＡＢＣＤ" 2 2 #全角文字を・・・（略）&lt;/div&gt;&lt;div&gt;Ｂ&lt;/div&gt;&lt;/div&gt;&lt;!-- Stylesheet link --&gt;&lt;link href="http://www.thecomplex.plus.com/styles/SyntaxHighlighter.css" rel="stylesheet" type="text/css"&gt;&lt;!-- Code --&gt;&lt;div class="dp-highlighter" id="hlDiv"&gt;&lt;ol start="1" class="dp-rb"&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="keyword"&gt;function&lt;/span&gt;&lt;span&gt; Get-SubStringBytes([String]&lt;/span&gt;&lt;span class="variable"&gt;$Text&lt;/span&gt;&lt;span&gt;, [int]&lt;/span&gt;&lt;span class="variable"&gt;$StartIndex&lt;/span&gt;&lt;span&gt; = 0, [int]&lt;/span&gt;&lt;span class="variable"&gt;$Length&lt;/span&gt;&lt;span&gt; = 0) {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt; &lt;span class="variable"&gt;$enc&lt;/span&gt;&lt;span&gt; = [System.Text.Encoding]::Default  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt; &lt;span class="variable"&gt;$bytes&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="variable"&gt;$enc&lt;/span&gt;&lt;span&gt;.GetBytes(&lt;/span&gt;&lt;span class="variable"&gt;$Text&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt; &lt;span class="keyword"&gt;return&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$enc&lt;/span&gt;&lt;span&gt;.GetString(&lt;/span&gt;&lt;span class="variable"&gt;$bytes&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$StartIndex&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$Length&lt;/span&gt;&lt;span&gt;)      &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;}&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-5774877893221702761?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/5774877893221702761/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=5774877893221702761' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/5774877893221702761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/5774877893221702761'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2010/11/powershell_30.html' title='PowerShellで文字列をバイトで区切って切り出す'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-1367806652920052053</id><published>2010-11-30T20:15:00.003+09:00</published><updated>2010-11-30T20:40:20.739+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><title type='text'>PowerShellでユーザー一覧に利用可能か無効を付けて出力する</title><content type='html'>&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Windowsのサーバー管理をしていると、突然に利用しているユーザーの一覧を提出するように求められることがある。&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;そんな時、慌ててGUIの管理ツールからユーザー一覧をCSV形式やなんかでエクスポートすると、削除せずに無効にしているユーザーまで出力されてしまい、そのユーザーが現在利用可能かどうかなどの状態情報は出力されないので後で指摘されることがある。&lt;br /&gt;&lt;br /&gt;そこで、現在利用可能か無効かの情報も一緒にユーザー一覧に付けて出力してみる。&lt;br /&gt;&lt;br /&gt;&gt; Get-WmiObject Win32_UserAccount | Select-Object -Property Status, Name, FullName, Description&lt;br /&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Status　　　 Name　　　　　　FullName　　Description&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;------　　　　----　　　　　　　--------　　　-----------&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Degraded 　 Administrator　　　　　　　　　コンピュータ/ドメイン...&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;Degraded 　Guest　　　　　　　　　　　　　　　コンピュータ/ドメイン...&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;OK 　　　　　ユーザー名&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: medium;"&gt;利用可能なユーザーは「Status」が「OK」になっている。&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-1367806652920052053?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/1367806652920052053/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=1367806652920052053' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/1367806652920052053'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/1367806652920052053'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2010/11/powershell.html' title='PowerShellでユーザー一覧に利用可能か無効を付けて出力する'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-6052147531562316372</id><published>2010-10-19T20:29:00.005+09:00</published><updated>2010-10-19T20:45:24.336+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><title type='text'>PowerShellでディスクトップのキャプチャを撮る</title><content type='html'>&lt;div&gt;&lt;div&gt;わざわざキャプチャを撮るのにPowerShellを使っても仕方がないから、あまり使う機会はないかもしれない。&lt;/div&gt;&lt;div&gt;普通にPrintScreenキー押してMSBitmapに張り付ければいいからね。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ただ、サーバー管理なんかをしている人だと、サーバー側で現在のサーバー自身のディスクトップをキャプチャして、定期的にメールしてくるってのは、わりといいのではないかと思って作成してみた。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;下のコードはコマンドを打つと、カレントフォルダに「out.jpg」ファイルができる感じです。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;--- PrintScreen-Desktop.ps1 ---&lt;/div&gt;&lt;link href="http://www.thecomplex.plus.com/styles/SyntaxHighlighter.css" rel="stylesheet" type="text/css"&gt;&lt;!-- Code --&gt;&lt;div class="dp-highlighter" id="hlDiv"&gt;&lt;ol start="1" class="dp-rb"&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="keyword"&gt;param&lt;/span&gt;&lt;span&gt;([string]&lt;/span&gt;&lt;span class="variable"&gt;$outImage&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="string"&gt;"out.jpg"&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$b&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; System.Drawing.Bitmap([System.Windows.Forms.Screen]::PrimaryScreen.Bounds.Width, [System.Windows.Forms.Screen]::PrimaryScreen.Bounds.Height)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$g&lt;/span&gt;&lt;span&gt; = [System.Drawing.Graphics]::FromImage(&lt;/span&gt;&lt;span class="variable"&gt;$b&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$g&lt;/span&gt;&lt;span&gt;.CopyFromScreen((&lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; System.Drawing.Point(0, 0)),(&lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; System.Drawing.Point(0, 0)), &lt;/span&gt;&lt;span class="variable"&gt;$b&lt;/span&gt;&lt;span&gt;.Size)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$g&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$b&lt;/span&gt;&lt;span&gt;.Save((&lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$PWD&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$outImage&lt;/span&gt;&lt;span&gt;))  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-6052147531562316372?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/6052147531562316372/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=6052147531562316372' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/6052147531562316372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/6052147531562316372'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2010/10/powershell.html' title='PowerShellでディスクトップのキャプチャを撮る'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-9028538153970642546</id><published>2010-10-07T21:07:00.003+09:00</published><updated>2010-10-07T21:12:47.212+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VBA'/><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><title type='text'>PowerShellで「du」コマンド　その３</title><content type='html'>【その２】の「du」だと、フルパスが長すぎるとうまく取得できない場合があるのでWSHの力を借りる。&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;やっていることは、カレントフォルダ内のフォルダを対象に、右クリックのプロパティで取得できるサイズをとっているだけ。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;GeｔFolderのSizeを取っているだけなのであっさりと書けるのがよい。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;速度も【その２】の時より早い。&lt;/div&gt;&lt;div&gt;簡単に計測したのでは、【13倍】の速さだった。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;$fs = New-Object -ComObject Scripting.FileSystemObject&lt;/div&gt;&lt;div&gt;ls | % { &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;if ($_.PSIsContainer) {&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;$name = $_.name&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;$size = ($fs.GetFolder($_)).size / 1MB&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;Write-Host $name " : " $size.ToString("0.00") "MB"&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;}&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-9028538153970642546?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/9028538153970642546/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=9028538153970642546' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/9028538153970642546'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/9028538153970642546'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2010/10/powershelldu.html' title='PowerShellで「du」コマンド　その３'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-5067853353574069263</id><published>2010-06-18T23:33:00.003+09:00</published><updated>2010-06-19T00:00:41.600+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><title type='text'>PowerShellで「ユーザーは次回ログオン時にパスワードの変更が必要」を有効化するには</title><content type='html'>&lt;div&gt;サーバー管理をしていてリストにあるユーザー全員の「ユーザーは次回ログオン時にパスワードの変更が必要」を有効化しないといけなくなったので調べてみた。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;手順としては、まずユーザー情報を取ってくる。&lt;/div&gt;&lt;div&gt;そのあと、有効化フラグである「1」を指定して反映させる。&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;PS&gt; $username = ユーザーID&lt;/div&gt;&lt;div&gt;PS&gt; $query "WinNT://./" + $username + ",user"&lt;/div&gt;&lt;div&gt;PS&gt; $user = [ADSI]($query)&lt;/div&gt;&lt;div&gt;PS&gt; $user.PasswordExpired = 1&lt;/div&gt;&lt;div&gt;PS&gt; $user.SetInfo()&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;自分が実際にやった時には、CSVに書かれたユーザーIDをImport-CSVして一気に処理させたけどね;-)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-5067853353574069263?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/5067853353574069263/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=5067853353574069263' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/5067853353574069263'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/5067853353574069263'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2010/06/powershell_18.html' title='PowerShellで「ユーザーは次回ログオン時にパスワードの変更が必要」を有効化するには'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-3452404512192157746</id><published>2010-06-18T23:20:00.002+09:00</published><updated>2010-06-18T23:32:07.170+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><title type='text'>PowerShellでダミーファイルを作る</title><content type='html'>別にPowerShellでなくても普通にCMDでダミーファイルを作る時も同じだけど、&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;PS&gt; fsutil.exe file createnew 1MBのダミーファイル 1048576&lt;/div&gt;&lt;div&gt;ファイル C:\Windows\system32\1MBのダミーファイル が作成されました&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;っとすると、１MBのファイルを作る事が出来る。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;それをPowerShellでやると何が嬉しいかと言うと、引数に「1048576」じゃなくて「1MB」と指定しても作れるところだ。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;PowerShellでは、&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;PS&gt; fsutil.exe file createnew 1MBのダミーファイル (1MB)&lt;/div&gt;&lt;div&gt;ファイル C:\Windows\system32\1MBのダミーファイル が作成されました&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;っとすれば、作ることができる。これで、「１００MB」でも「1GB」でも簡単に作れそうだ。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ただ、「１MB」を括弧で囲んで「　（１MB）　」としないと、下のようにヘルプが表示されてしまう。&lt;/div&gt;&lt;div&gt;「１MB」が展開されずに「１MB」と文字列で渡されてしまうからだろう。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;PS&gt; fsutil.exe file createnew 1MBのダミーファイル 1MB&lt;/div&gt;&lt;div&gt;使用法 : fsutil file createnew &lt;ファイル名&gt; &lt;長さ&gt;&lt;/div&gt;&lt;div&gt;    例 : fsutil file createnew C:\testfile.txt 1000&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;※ちなみに、Vistaだと管理者権限でPowerShellを起動しないと作れない。&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-3452404512192157746?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/3452404512192157746/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=3452404512192157746' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/3452404512192157746'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/3452404512192157746'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2010/06/powershell.html' title='PowerShellでダミーファイルを作る'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-1165562784590143279</id><published>2010-06-08T22:44:00.003+09:00</published><updated>2010-06-08T22:55:27.351+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><title type='text'>PowerShellでLinuxの「du」コマンド　その２</title><content type='html'>　フォルダ容量を取得するくらいなら、PowerShellのコマンドレットだけでできるような気がしてたけど、実際にできたのでメモ。&lt;div&gt;っというか、前にブログを書いた時点で気付けたと思うんだけどね。まだまだだな俺。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;binフォルダ以下の容量を取得ところ、「Sum」が合計&lt;/div&gt;&lt;div&gt;&gt; Get-ChildItem -Path .\bin -Force -Recurse | Measure-Object -Property Length -Sum&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Count    : 13391&lt;/div&gt;&lt;div&gt;Average  :&lt;/div&gt;&lt;div&gt;Sum      : 1243746959&lt;/div&gt;&lt;div&gt;Maximum  :&lt;/div&gt;&lt;div&gt;Minimum  :&lt;/div&gt;&lt;div&gt;Property : Length&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;これだと、わかりにくいので、MBにする。&lt;/div&gt;&lt;div&gt;&lt;div&gt;&gt; Get-ChildItem -Path .\bin -Force -Recurse | Measure-Object -Property Length -Sum | ForEach-Object  { $_.Sum / 1MB }&lt;/div&gt;&lt;/div&gt;&lt;div&gt;1186.12953090668&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;MBでもわかりにくかったのでGBで、&lt;/div&gt;&lt;div&gt;&lt;div&gt;&gt; Get-ChildItem -Path .\bin -Force -Recurse | Measure-Object -Property Length -Sum | ForEach-Object  { $_.Sum / 1GB }&lt;/div&gt;&lt;div&gt;1.15832962002605&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-1165562784590143279?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/1165562784590143279/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=1165562784590143279' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/1165562784590143279'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/1165562784590143279'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2010/06/powershelllinuxdu.html' title='PowerShellでLinuxの「du」コマンド　その２'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-5969093890216752738</id><published>2010-06-01T22:50:00.006+09:00</published><updated>2010-06-01T23:12:00.016+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><title type='text'>PowerShellでMACアドレスからメーカーを調べる</title><content type='html'>PowerShellでMACアドレスからメーカー（ベンダー）を調べてみる。&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;まずは、MACアドレスを取得する。&lt;/div&gt;&lt;div&gt;MACアドレスの取り方はいろいろあるけど、ここでは、「nbtstat」コマンドを利用することにした。&lt;/div&gt;&lt;div&gt;まぁ一行であっさり書きたかっただけだけど。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;--- Get-MACAddress.ps1 ---&lt;/div&gt;&lt;!-- Stylesheet link --&gt;&lt;link href="http://www.thecomplex.plus.com/styles/SyntaxHighlighter.css" rel="stylesheet" type="text/css"&gt;&lt;!-- Code --&gt;&lt;div class="dp-highlighter" id="hlDiv"&gt;&lt;ol start="1" class="dp-rb"&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="keyword"&gt;param&lt;/span&gt;&lt;span&gt;([string]&lt;/span&gt;&lt;span class="variable"&gt;$ip&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;nbtstat -A &lt;span class="variable"&gt;$ip&lt;/span&gt;&lt;span&gt; | &lt;/span&gt;&lt;span class="builtin"&gt;ForEach-Object&lt;/span&gt;&lt;span&gt; { &lt;/span&gt;&lt;span class="keyword"&gt;if&lt;/span&gt;&lt;span&gt; ( &lt;/span&gt;&lt;span class="variable"&gt;$_&lt;/span&gt;&lt;span&gt; -match &lt;/span&gt;&lt;span class="string"&gt;"MAC"&lt;/span&gt;&lt;span&gt;) { &lt;/span&gt;&lt;span class="variable"&gt;$_&lt;/span&gt;&lt;span&gt; -replace &lt;/span&gt;&lt;span class="string"&gt;" "&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span class="string"&gt;""&lt;/span&gt;&lt;span&gt; -replace &lt;/span&gt;&lt;span class="string"&gt;"MACアドレス="&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span class="string"&gt;""&lt;/span&gt;&lt;span&gt; } }  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;次に、取得したMACアドレスからメーカーを調べる。&lt;/div&gt;&lt;div&gt;メーカーを調べるサイトは、ここを利用させてもらう。&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.coffer.com/mac_find/"&gt;MAC_Find- Vendor-Ethernet-Bluetooth MAC Address Lookup and Search&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;--- Find-MacAddressFromVendorName.ps1 ---&lt;/div&gt;&lt;div class="dp-highlighter" id="hlDiv"&gt;&lt;ol start="1" class="dp-rb"&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="keyword"&gt;param&lt;/span&gt;&lt;span&gt;([string]&lt;/span&gt;&lt;span class="variable"&gt;$macaddress&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;[void]([Reflection.Assembly]::LoadWithPartialName(&lt;span class="string"&gt;"System.Web"&lt;/span&gt;&lt;span&gt;))  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$macaddress&lt;/span&gt;&lt;span&gt; = [Web.HttpUtility]::UrlEncode(&lt;/span&gt;&lt;span class="variable"&gt;$macaddress&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$webReq&lt;/span&gt;&lt;span&gt; = [Net.HttpWebRequest]::Create(&lt;/span&gt;&lt;span class="string"&gt;"http://www.coffer.com/mac_find/?string=$macaddress"&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$webReq&lt;/span&gt;&lt;span&gt;.Method = &lt;/span&gt;&lt;span class="string"&gt;"GET"&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$webReq&lt;/span&gt;&lt;span&gt;.UserAgent = &lt;/span&gt;&lt;span class="string"&gt;"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)"&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$webRes&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="variable"&gt;$webReq&lt;/span&gt;&lt;span&gt;.GetResponse()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$sr&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; IO.StreamReader(&lt;/span&gt;&lt;span class="variable"&gt;$webRes&lt;/span&gt;&lt;span&gt;.GetResponseStream(), &lt;/span&gt;&lt;span class="variable"&gt;$webRes&lt;/span&gt;&lt;span&gt;.ContentEncoding)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$content&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="variable"&gt;$sr&lt;/span&gt;&lt;span&gt;.ReadToEnd()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$sr&lt;/span&gt;&lt;span&gt;.Close()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$webRes&lt;/span&gt;&lt;span&gt;.Close()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$content&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="variable"&gt;$content&lt;/span&gt;&lt;span&gt;.Split(&lt;/span&gt;&lt;span class="string"&gt;"`n"&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$result&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="variable"&gt;$content&lt;/span&gt;&lt;span&gt; | &lt;/span&gt;&lt;span class="builtin"&gt;ForEach-Object&lt;/span&gt;&lt;span&gt; {   &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="keyword"&gt;if&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span class="variable"&gt;$_&lt;/span&gt;&lt;span&gt; -match &lt;/span&gt;&lt;span class="string"&gt;"table2"&lt;/span&gt;&lt;span&gt; -and &lt;/span&gt;&lt;span class="variable"&gt;$_&lt;/span&gt;&lt;span&gt; -match &lt;/span&gt;&lt;span class="string"&gt;"td"&lt;/span&gt;&lt;span&gt;) {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;        &lt;span class="variable"&gt;$_&lt;/span&gt;&lt;span&gt; -replace &lt;/span&gt;&lt;span class="string"&gt;"&amp;lt;.*?&amp;gt;"&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span class="string"&gt;""&lt;/span&gt;&lt;span&gt; -replace &lt;/span&gt;&lt;span class="string"&gt;"`t"&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span class="string"&gt;""&lt;/span&gt;&lt;span&gt; }   &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;}&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$obj&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; PSObject  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$obj&lt;/span&gt;&lt;span&gt; | &lt;/span&gt;&lt;span class="builtin"&gt;Add-Member&lt;/span&gt;&lt;span&gt; NoteProperty MacAddress &lt;/span&gt;&lt;span class="variable"&gt;$macaddress&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$obj&lt;/span&gt;&lt;span&gt; | &lt;/span&gt;&lt;span class="builtin"&gt;Add-Member&lt;/span&gt;&lt;span&gt; NoteProperty Vendor &lt;/span&gt;&lt;span class="variable"&gt;$result&lt;/span&gt;&lt;span&gt;[1]  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$obj&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;利用方法は、パスを通したところにスプリクトを保存しておいて、&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&gt; Find-MacAddressFromVendorName ( Get-MACAddress 192.168.0.1)&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;MacAddress 　　　　　　　　　　　Vendor&lt;/div&gt;&lt;div&gt;---------- 　　　　　　　　　　　　　　 ------&lt;/div&gt;&lt;div&gt;XX-XX-XX-XX-XX-XX　　　　　　　XXX&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;っといった感じ。&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-5969093890216752738?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/5969093890216752738/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=5969093890216752738' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/5969093890216752738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/5969093890216752738'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2010/06/powershellmac.html' title='PowerShellでMACアドレスからメーカーを調べる'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-6714819153853756333</id><published>2010-05-28T23:19:00.001+09:00</published><updated>2010-05-28T23:22:14.778+09:00</updated><title type='text'>PowerShellでリモートPCのHDD容量を取得する</title><content type='html'>&lt;div&gt;　サーバーのHDD容量を、PowerShellで監視したかったので、書いてみた。&lt;/div&gt;&lt;div&gt;　PowerShellを使うと、わりとなんでも簡単にできるのから嬉しいが、だんだん手放せなってきているのがちょっと怖い。&lt;/div&gt;&lt;!-- Stylesheet link --&gt;&lt;link href="http://www.thecomplex.plus.com/styles/SyntaxHighlighter.css" rel="stylesheet" type="text/css"&gt;&lt;!-- Code --&gt;&lt;div class="dp-highlighter" id="hlDiv"&gt;&lt;ol start="1" class="dp-rb"&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$computer_name&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="string"&gt;"foo.bar.co.jp"&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="comment"&gt;#IPアドレスでもOK&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$user_name&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="string"&gt;"administrator"&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$password&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;ConvertTo-SecureString&lt;/span&gt;&lt;span&gt; -String &lt;/span&gt;&lt;span class="string"&gt;"hogehoge"&lt;/span&gt;&lt;span&gt; -AsPlainText -Force  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$credential&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; System.Management.Automation.PSCredential(&lt;/span&gt;&lt;span class="variable"&gt;$user_name&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$password&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="builtin"&gt;Get-WmiObject&lt;/span&gt;&lt;span&gt; -Class win32_logicaldisk -ComputerName &lt;/span&gt;&lt;span class="variable"&gt;$computer_name&lt;/span&gt;&lt;span&gt; -Credential &lt;/span&gt;&lt;span class="variable"&gt;$credential&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-6714819153853756333?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/6714819153853756333/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=6714819153853756333' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/6714819153853756333'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/6714819153853756333'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2010/05/powershellpchdd.html' title='PowerShellでリモートPCのHDD容量を取得する'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-2824633602698763096</id><published>2010-05-25T23:09:00.002+09:00</published><updated>2010-05-25T23:20:33.728+09:00</updated><title type='text'>PowerShellでリモートのイベントログを取得する（その２）</title><content type='html'>&lt;div&gt;PowerShellでは以下のコマンドでリモートのイベントログを取得する事ができる。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&gt; Get-EventLog -ComputerName コンピュータ名 -LogName ログ名&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;例えば、&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&gt; Get-EventLog -ComputerName foo.xx.co.jp -LogName application&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;とすると、「foo.xx.co.jp」のアプリケーションログを取得する事ができる。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;でも、コンピュータ名@ドメイン名を入力するということは、DNSで名前解決できるマシンじゃないと駄目ということだ。&lt;/div&gt;&lt;div&gt;俺の環境では使えないか…&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;っと思っていたら、引数がコンピュータ名などとなっているのにもかかわらず、IPアドレスでもリモートのイベントログを取得できることが分かった。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&gt; Get-EventLog -ComputerName 192.168.0.1 -LogName Application&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;だだし、指定したIPによっては以下のようなエラーとなるかもしれない。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&gt; Get-EventLog -ComputerName 192.168.0.1 -LogName Application&lt;/div&gt;&lt;div&gt;Get-EventLog : 許可されていない操作を実行しようとしました。&lt;/div&gt;&lt;div&gt;発生場所　行:1 文字:13&lt;/div&gt;&lt;div&gt;+ Get-EventLog &lt;&lt;&lt;&lt; -ComputerName 192.168.0.1 -LogName Application&lt;/div&gt;&lt;div&gt;   + CategoryInfo          : NotSpecified; (:) [Get-EventLog], UnauthorizedAccessException&lt;/div&gt;&lt;div&gt;   + FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.PowerShell.Commands. Get&lt;/div&gt;&lt;div&gt;  EventLogCommand&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;そんな時は、単にそのマシンに対して権限がないだけの話なので、以下のように「net use」コマンドを利用して、管理者権限でそのIPのマシンに接続してしまえばOKだ。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&gt; net use \\192.168.0.1 パスワード /user:administrator&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;あと、Get-Processも引数に -ComputerName をとるので、リモートで何台も管理している人は覚えておくと便利だと思う。&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-2824633602698763096?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/2824633602698763096/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=2824633602698763096' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/2824633602698763096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/2824633602698763096'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2010/05/powershell.html' title='PowerShellでリモートのイベントログを取得する（その２）'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-6180480212636350850</id><published>2010-05-22T00:33:00.003+09:00</published><updated>2010-05-22T00:37:49.207+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><title type='text'>PowerShellでLinuxの「du」コマンド</title><content type='html'>作ろうと思ったら、もう作っている人がいたので、メモ。&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; line-height: 21px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"&gt;&lt;a href="http://www.viveksharma.com/TECHLOG/archive/2008/11/24/powershell-version-sort-of-of-unixrsquos-du-command.aspx"&gt;PowerShell version (sort of) of Unix’s du command&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.viveksharma.com/TECHLOG/archive/2008/11/24/powershell-version-sort-of-of-unixrsquos-du-command.aspx"&gt;http://www.viveksharma.com/TECHLOG/archive/2008/11/24/powershell-version-sort-of-of-unixrsquos-du-command.aspx&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-6180480212636350850?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/6180480212636350850/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=6180480212636350850' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/6180480212636350850'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/6180480212636350850'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2010/05/powershelllinuxdu.html' title='PowerShellでLinuxの「du」コマンド'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-3675007725209864356</id><published>2009-11-17T23:42:00.007+09:00</published><updated>2009-11-18T01:43:09.432+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><title type='text'>PowerShellからLucene.netを使ってみる</title><content type='html'>&lt;div&gt;@ITの&lt;a href="http://www.atmarkit.co.jp/fdotnet/vblab/extcompo_06/lucenenet_01.html"&gt;この記事&lt;/a&gt;を見て使ってみたくなったのでさわってみた。&lt;/div&gt;&lt;div&gt;お試しなので単純にできるように、テキストファイル限定で中身を全文検索してファイル名を返すようにしようと思う。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;まずは、DLLをダウンロードしてくる。場所は記事に書かれているところから飛べるのでそこから落としてくる。&lt;/div&gt;&lt;div&gt;落としてくるのは、Lucene.Netと記事の筆者が作成された日本語用のDLLがあるのでそちらも落としてる。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;記事ではLucene.Net.Analysys.Ja.JapaneseAnalyereを使用しているけど、TokenStreamメソッドを使おうとすると下の例外が出て使えなかった。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#FF0000;"&gt;"2" 個の引数を指定して "TokenStream" を呼び出し中に例外が発生しました: "保護されているメモリに読み取りまたは書き込み操作を行おうとしました。他のメモリが壊れていることが考えられます。"&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#FF0000;"&gt;発生場所 行:1 文字:37&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#FF0000;"&gt;+ $tokenStream = $analyzer.TokenStream &lt;&lt;&lt;&lt; ("",$stringReader)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#FF0000;"&gt;    + CategoryInfo          : NotSpecified: (:) []、MethodInvocationException&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#FF0000;"&gt;    + FullyQualifiedErrorId : DotNetMethodTargetInvocation&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;できればJapaneseAnalyereを使って見たかったがしかたがない。今回はLuceneで全文検索をすることが目的なので、代わりにLucene.Net.Analysis.CJK.CJKAnalyzerの方を使う。&lt;/div&gt;&lt;div&gt;今度時間のある時に調べてみよう。N-gramより形態素解析の方が面白そうだからね。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Lucene.netを試してる時に、PowerShellからDLLのインナークラスの使い方がわからなかった。&lt;/div&gt;&lt;div&gt;「Lucene.Net.Documents.Field.Store.YES」と「Lucene.Net.Documents.Field.Index.TOKENIZED」は、ソースをみる限りでは、Lucene.Net.Documents.Fieldクラスのインナークラスみたいだけど、.（ドット）でつないだのではアクセスできなかった。&lt;/div&gt;&lt;div&gt;例外を出してその内容からわかった使い方は以下&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;[Lucene.Net.Documents.Field+Store]::YES&lt;/div&gt;&lt;div&gt;[Lucene.Net.Documents.Field+Index]::TOKENIZED&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;＋（プラス）ってなんだ??&lt;/div&gt;&lt;div&gt;よくわからんが、インナークラスを使う時は＋（プラス）でつなげるようだ。&lt;/div&gt;&lt;div&gt;一応、小さいインナークラスのDLLを作って試したけど、どうやらそうらしい。&lt;/div&gt;&lt;div&gt;しかし、これはildasmでDLLをみてもぱっと見わかんないな。&lt;/div&gt;&lt;div&gt;まぁDLLを読み込んだあとならPowerShellのTab補完が効くか効かないかで判断できるけど…in Actionに載ってたかなぁ…?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;自分の試したサンプル下に貼っておく。&lt;/div&gt;&lt;div&gt;サンプルを実行するのに必要なDLLは下の二つなので、適当なフォルダにコピーしておく。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;・Lucene.Net.dll&lt;/div&gt;&lt;div&gt;・Lucene.Net.Analysis.CJK.dll&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;そのフォルダに移動してから、サンプルをコピー＆ペーストしてPowerShellに読み込ませる。&lt;/div&gt;&lt;div&gt;（たぶん、単純にコピーすると行番号までついてくるのでメモ帳にでも貼って番号を削除してからコピーして貼り付ければいい）&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;使い方は、&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;インデックスフォルダとインデックスファイルのベースの作成する。&lt;/div&gt;&lt;div&gt;&gt; Create-LuceneIndex -IndexPath C:\LuceneIndex&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;インデックスファイルに指定したファイルを追加する。インデックスに追加されるのは、ファイル名（フルパス）とテキストファイルの中身。&lt;/div&gt;&lt;div&gt;追加するファイルを渡す引数の型は「System.IO.FileInfo」なので、「ls」の結果を変数に詰めて渡すか。フルパスを書く必要がある。&lt;/div&gt;&lt;div&gt;&gt; Add-LuceneDocument -IndexPath C:\LuceneIndex -file c:\hoge\foo.txt&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;検索する。ファイルのフルパスが返ってくる。&lt;/div&gt;&lt;div&gt;&gt; Find-LuceneDocument -IndexPath C:\LuceneIndex -word foo&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;インデックスを削除する。&lt;/div&gt;&lt;div&gt;&gt; Remove-LuceneDocument -IndexPath C:\LuceneIndex -file c:\hoge\foo.txt&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;他にも追加と削除を組み合わせて更新用の関数なんかもあれば便利だと思う。&lt;/div&gt;&lt;div&gt;このサンプルのままで日本語も検索できるから、あと実際の業務で使おうと思ったら、クローラとOffice系のファイルの読み込みが必要かな。&lt;/div&gt;&lt;div&gt;Office系のファイルの読み込みならAdd-LuceneDocument関数内の&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;$contents = Get-Content $file&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;の部分を変更して、xDoc2txtなどを使う必要があると思う。&lt;/div&gt;&lt;div&gt;まぁPowerShellならクローラは簡単だと思うし、拡張子を見て$contentに入れる中身を変えるのも難しくないだろう。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ちょっと長いけど、サンプル↓&lt;/div&gt;&lt;!-- Stylesheet link --&gt;&lt;link href="http://www.thecomplex.plus.com/styles/SyntaxHighlighter.css" rel="stylesheet" type="text/css"&gt;&lt;!-- Code --&gt;&lt;div class="dp-highlighter" id="hlDiv"&gt;&lt;ol start="1" class="dp-rb"&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span&gt;[void][System.Reflection.Assembly]::LoadFrom((&lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; Lucene.Net.dll))  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;[void][System.Reflection.Assembly]::LoadFrom((&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; Lucene.Net.Analysis.CJK.dll))  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="comment"&gt;# 元となるインデックスを作成する&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="keyword"&gt;function&lt;/span&gt;&lt;span&gt; Create-LuceneIndex([string]&lt;/span&gt;&lt;span class="variable"&gt;$indexPath&lt;/span&gt;&lt;span&gt;) {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="comment"&gt;# インデックスが存在した場合はフォルダを削除して作り直す&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="keyword"&gt;if&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span class="builtin"&gt;Test-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$indexPath&lt;/span&gt;&lt;span&gt;) {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;        &lt;span class="keyword"&gt;if&lt;/span&gt;&lt;span&gt; ([Lucene.Net.Index.IndexReader]::IndexExists(&lt;/span&gt;&lt;span class="variable"&gt;$indexPath&lt;/span&gt;&lt;span&gt;)) {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;            [void][System.IO.Directory]::Delete(&lt;span class="variable"&gt;$indexPath&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$true&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;            [void][System.IO.Directory]::CreateDirectory(&lt;span class="variable"&gt;$indexPath&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;        }  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    }  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="variable"&gt;$indexWriter&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; Lucene.Net.Index.IndexWriter(&lt;/span&gt;&lt;span class="variable"&gt;$indexPath&lt;/span&gt;&lt;span&gt;, ( &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; Lucene.Net.Analysis.CJK.CJKAnalyzer ), &lt;/span&gt;&lt;span class="variable"&gt;$true&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="variable"&gt;$indexWriter&lt;/span&gt;&lt;span&gt;.Close()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;}  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;# インデックスにファイルを追加する&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="keyword"&gt;function&lt;/span&gt;&lt;span&gt; Add-LuceneDocument([string]&lt;/span&gt;&lt;span class="variable"&gt;$indexPath&lt;/span&gt;&lt;span&gt;, [System.IO.FileInfo]&lt;/span&gt;&lt;span class="variable"&gt;$file&lt;/span&gt;&lt;span&gt;) {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="comment"&gt;# Documentオブジェクトの作成&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="variable"&gt;$document&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; Lucene.Net.Documents.Document  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;      &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="comment"&gt;# Fieldオブジェクトの作成&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="variable"&gt;$fileName&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="variable"&gt;$file&lt;/span&gt;&lt;span&gt;.FullName  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="variable"&gt;$contents&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;Get-Content&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$file&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;      &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="variable"&gt;$fieldFileName&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; Lucene.Net.Documents.Field(&lt;/span&gt;&lt;span class="string"&gt;"filename"&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$fileName&lt;/span&gt;&lt;span&gt;, [Lucene.Net.Documents.Field+Store]::YES, [Lucene.Net.Documents.Field+Index]::TOKENIZED)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="variable"&gt;$fieldContents&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; Lucene.Net.Documents.Field(&lt;/span&gt;&lt;span class="string"&gt;"contents"&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$contents&lt;/span&gt;&lt;span&gt;, [Lucene.Net.Documents.Field+Store]::YES, [Lucene.Net.Documents.Field+Index]::TOKENIZED)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;      &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="comment"&gt;# Documentオブジェクトにフィールドを追加&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="variable"&gt;$document&lt;/span&gt;&lt;span&gt;.Add(&lt;/span&gt;&lt;span class="variable"&gt;$fieldFileName&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="variable"&gt;$document&lt;/span&gt;&lt;span&gt;.Add(&lt;/span&gt;&lt;span class="variable"&gt;$fieldContents&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;      &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="variable"&gt;$indexWriter&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; Lucene.Net.Index.IndexWriter(&lt;/span&gt;&lt;span class="variable"&gt;$indexPath&lt;/span&gt;&lt;span&gt;, ( &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; Lucene.Net.Analysis.CJK.CJKAnalyzer ), &lt;/span&gt;&lt;span class="variable"&gt;$false&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;      &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="comment"&gt;# インデックスにDocumentオブジェクトを追加&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="variable"&gt;$indexWriter&lt;/span&gt;&lt;span&gt;.AddDocument(&lt;/span&gt;&lt;span class="variable"&gt;$document&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;      &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="comment"&gt;# インデックスを最適化する&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="variable"&gt;$indexWriter&lt;/span&gt;&lt;span&gt;.Optimize()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;      &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="variable"&gt;$indexWriter&lt;/span&gt;&lt;span&gt;.Close()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;}  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;# インデックスからファイルを削除する&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="keyword"&gt;function&lt;/span&gt;&lt;span&gt; Remove-LuceneDocument([string]&lt;/span&gt;&lt;span class="variable"&gt;$indexPath&lt;/span&gt;&lt;span&gt;, [System.IO.FileInfo]&lt;/span&gt;&lt;span class="variable"&gt;$file&lt;/span&gt;&lt;span&gt;) {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="comment"&gt;# アナライザの準備&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="variable"&gt;$analyzer&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; Lucene.Net.Analysis.CJK.CJKAnalyzer  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="comment"&gt;# ファイル名を対象にクエリを作成&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="variable"&gt;$queryPsr&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; Lucene.Net.QueryParsers.QueryParser(&lt;/span&gt;&lt;span class="string"&gt;"filename"&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$analyzer&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="variable"&gt;$word&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="variable"&gt;$file&lt;/span&gt;&lt;span&gt;.Name  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="variable"&gt;$query&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="variable"&gt;$queryPsr&lt;/span&gt;&lt;span&gt;.Parse(&lt;/span&gt;&lt;span class="variable"&gt;$word&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;      &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="comment"&gt;# インデックスからヒットするものを探す&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="variable"&gt;$searcher&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; Lucene.Net.Search.IndexSearcher(&lt;/span&gt;&lt;span class="variable"&gt;$indexPath&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="variable"&gt;$hits&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="variable"&gt;$searcher&lt;/span&gt;&lt;span&gt;.Search(&lt;/span&gt;&lt;span class="variable"&gt;$query&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;      &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="variable"&gt;$target&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="variable"&gt;$file&lt;/span&gt;&lt;span&gt;.FullName  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="comment"&gt;# ヒットしたものをインデックスから削除する&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="variable"&gt;$indexReader&lt;/span&gt;&lt;span&gt; = [Lucene.Net.Index.indexReader]::Open(&lt;/span&gt;&lt;span class="variable"&gt;$indexPath&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="keyword"&gt;for&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt; = 0; &lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt; -lt &lt;/span&gt;&lt;span class="variable"&gt;$hits&lt;/span&gt;&lt;span&gt;.Length(); &lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt;++) {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;        &lt;span class="variable"&gt;$doc&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="variable"&gt;$hits&lt;/span&gt;&lt;span&gt;.Doc(&lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;        &lt;span class="comment"&gt;# ファイルのフルパスと一致するものだけを削除する&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;        &lt;span class="keyword"&gt;if&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span class="variable"&gt;$doc&lt;/span&gt;&lt;span&gt;.Get(&lt;/span&gt;&lt;span class="string"&gt;"filename"&lt;/span&gt;&lt;span&gt;) -eq &lt;/span&gt;&lt;span class="variable"&gt;$target&lt;/span&gt;&lt;span&gt;) {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;            &lt;span class="variable"&gt;$indexReader&lt;/span&gt;&lt;span&gt;.DeleteDocument(&lt;/span&gt;&lt;span class="variable"&gt;$hits&lt;/span&gt;&lt;span&gt;.Id(&lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt;))  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;        }  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    }  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="variable"&gt;$indexReader&lt;/span&gt;&lt;span&gt;.Close()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;}  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;# インデックスから検索する&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="keyword"&gt;function&lt;/span&gt;&lt;span&gt; Find-LuceneDocument([string]&lt;/span&gt;&lt;span class="variable"&gt;$indexPath&lt;/span&gt;&lt;span&gt;, [string]&lt;/span&gt;&lt;span class="variable"&gt;$word&lt;/span&gt;&lt;span&gt;) {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="comment"&gt;# アナライザの準備&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="variable"&gt;$analyzer&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; Lucene.Net.Analysis.CJK.CJKAnalyzer  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="comment"&gt;# ファイルの中身を対象にクエリを作成&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="variable"&gt;$queryPsr&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; Lucene.Net.QueryParsers.QueryParser(&lt;/span&gt;&lt;span class="string"&gt;"contents"&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$analyzer&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="variable"&gt;$query&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="variable"&gt;$queryPsr&lt;/span&gt;&lt;span&gt;.Parse(&lt;/span&gt;&lt;span class="variable"&gt;$word&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;      &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="comment"&gt;# インデックスからヒットするものを探す&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="variable"&gt;$searcher&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; Lucene.Net.Search.IndexSearcher(&lt;/span&gt;&lt;span class="variable"&gt;$indexPath&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="variable"&gt;$hits&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="variable"&gt;$searcher&lt;/span&gt;&lt;span&gt;.Search(&lt;/span&gt;&lt;span class="variable"&gt;$query&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;      &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="comment"&gt;# Lucene.Net.Documents.Documentの配列を作成してヒットしたものを詰める&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    [Lucene.Net.Documents.Document[]]&lt;span class="variable"&gt;$docments&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; Lucene.Net.Documents.Document[](&lt;/span&gt;&lt;span class="variable"&gt;$hits&lt;/span&gt;&lt;span&gt;.Length())  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="keyword"&gt;for&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt; = 0; &lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt; -lt &lt;/span&gt;&lt;span class="variable"&gt;$hits&lt;/span&gt;&lt;span&gt;.Length(); &lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt;++) {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;        &lt;span class="variable"&gt;$docments&lt;/span&gt;&lt;span&gt;[&lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt;] = &lt;/span&gt;&lt;span class="variable"&gt;$hits&lt;/span&gt;&lt;span&gt;.Doc(&lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    }  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="keyword"&gt;return&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span class="variable"&gt;$docments&lt;/span&gt;&lt;span&gt; | % { &lt;/span&gt;&lt;span class="variable"&gt;$_&lt;/span&gt;&lt;span&gt;.Get(&lt;/span&gt;&lt;span class="string"&gt;"filename"&lt;/span&gt;&lt;span&gt;) })  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;}  &lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-3675007725209864356?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/3675007725209864356/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=3675007725209864356' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/3675007725209864356'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/3675007725209864356'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2009/11/powershelllucenenet.html' title='PowerShellからLucene.netを使ってみる'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-3086298954744795681</id><published>2009-11-14T10:32:00.001+09:00</published><updated>2009-11-14T10:34:26.516+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenCV'/><title type='text'>PowerShellで動画の輪郭検出をしてみる</title><content type='html'>&lt;div&gt;OpenCVSharpを使用してWebカメラから動画をキャプチャーしながら輪郭検出をしてみる。&lt;br /&gt;静止画と同じではつまらないので、円の中の４点を赤色にして、その４点の座標を緑の字でウィンドウ上に表示させてみる。&lt;/div&gt;&lt;!-- Stylesheet link --&gt;&lt;link href="http://www.thecomplex.plus.com/styles/SyntaxHighlighter.css" rel="stylesheet" type="text/css"&gt;&lt;!-- Code --&gt;&lt;div class="dp-highlighter" id="hlDiv"&gt;&lt;ol start="1" class="dp-rb"&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span&gt;[void][System.Reflection.Assembly]::LoadFrom((&lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; OpenCvSharp.dll))  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$camera&lt;/span&gt;&lt;span&gt; = [OpenCvSharp.CvCapture]::FromCamera(0)   &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$window&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.CvWindow(&lt;/span&gt;&lt;span class="string"&gt;"SampleCapture"&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$threshold&lt;/span&gt;&lt;span&gt; = 128 &lt;/span&gt;&lt;span class="comment"&gt;#　白色か黒色かのしきい値&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$smooth&lt;/span&gt;&lt;span&gt; = 5 &lt;/span&gt;&lt;span class="comment"&gt;#　値が大きいほどぼかしが強い&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$font&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.CvFont([OpenCvSharp.FontFace]::HersheyComplex, 0.7, 0.7)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$point1&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.CvPoint(10,20)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$point25&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.CvPoint(10,45)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$point50&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.CvPoint(10,70)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$point75&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.CvPoint(10,95)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$colorString&lt;/span&gt;&lt;span&gt; = [OpenCvSharp.CvColor]::Green  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$colorPoint&lt;/span&gt;&lt;span&gt; = [OpenCvSharp.CvColor]::Red  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$colorLine&lt;/span&gt;&lt;span&gt; = [OpenCvSharp.CvColor]::Blue  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$size&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.CvSize(15, 15)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="comment"&gt;#　この値が大きいほど輪郭が狭まる&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$tremCriteria&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.CvTermCriteria(300)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$alpha&lt;/span&gt;&lt;span&gt; = [System.Single]0.45  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$beta&lt;/span&gt;&lt;span&gt; = [System.Single]0.35  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$gamma&lt;/span&gt;&lt;span&gt; = [System.Single]0.2  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$srcSize&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.CvSize(&lt;/span&gt;&lt;span class="variable"&gt;$camera&lt;/span&gt;&lt;span&gt;.FrameWidth, &lt;/span&gt;&lt;span class="variable"&gt;$camera&lt;/span&gt;&lt;span&gt;.FrameHeight)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$srcIplImage&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.IplImage( &lt;/span&gt;&lt;span class="variable"&gt;$srcSize&lt;/span&gt;&lt;span&gt;, [OpenCvSharp.BitDepth]::U8, 1)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$dstIplImage&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.IplImage( &lt;/span&gt;&lt;span class="variable"&gt;$srcSize&lt;/span&gt;&lt;span&gt;, [OpenCvSharp.BitDepth]::U8, 1)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;#　ポイントを配列で初期化　全部ゼロで初期化される&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;[OpenCvSharp.CvPoint[]]&lt;span class="variable"&gt;$contour&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.CvPoint[](100)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="comment"&gt;#　ウィンドウの中心点を取得&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$center&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.CvPoint((&lt;/span&gt;&lt;span class="variable"&gt;$srcSize&lt;/span&gt;&lt;span&gt;.Width / 2), (&lt;/span&gt;&lt;span class="variable"&gt;$srcSize&lt;/span&gt;&lt;span&gt;.Height / 2))  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;      &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="keyword"&gt;while&lt;/span&gt;&lt;span&gt; ( [OpenCvSharp.CvWindow]::WaitKey(10) -lt 0 ) {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="variable"&gt;$camera&lt;/span&gt;&lt;span&gt;.QueryFrame()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;      &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="comment"&gt;# 中心点を元にポイントの初期値を設定&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="keyword"&gt;for&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt; = 0; &lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt; -lt &lt;/span&gt;&lt;span class="variable"&gt;$contour&lt;/span&gt;&lt;span&gt;.Length; &lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt;++) {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;        &lt;span class="variable"&gt;$x&lt;/span&gt;&lt;span&gt; = [int](&lt;/span&gt;&lt;span class="variable"&gt;$center&lt;/span&gt;&lt;span&gt;.X * [System.Math]::Cos(2 * [System.Math]::PI * &lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt; / &lt;/span&gt;&lt;span class="variable"&gt;$contour&lt;/span&gt;&lt;span&gt;.Length) + &lt;/span&gt;&lt;span class="variable"&gt;$center&lt;/span&gt;&lt;span&gt;.X)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;        &lt;span class="variable"&gt;$y&lt;/span&gt;&lt;span&gt; = [int](&lt;/span&gt;&lt;span class="variable"&gt;$center&lt;/span&gt;&lt;span&gt;.Y * [System.Math]::Sin(2 * [System.Math]::PI * &lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt; / &lt;/span&gt;&lt;span class="variable"&gt;$contour&lt;/span&gt;&lt;span&gt;.Length) + &lt;/span&gt;&lt;span class="variable"&gt;$center&lt;/span&gt;&lt;span&gt;.Y)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;        &lt;span class="variable"&gt;$p&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.CvPoint(&lt;/span&gt;&lt;span class="variable"&gt;$x&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$y&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;        &lt;span class="variable"&gt;$contour&lt;/span&gt;&lt;span&gt;.Set(&lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$p&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    }  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="comment"&gt;# グレースケールに変換&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    [OpenCvSharp.Cv]::CvtColor(&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$srcIplImage&lt;/span&gt;&lt;span&gt;, [OpenCvSharp.ColorConversion]::BgraToGray)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;      &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="comment"&gt;#　ぼかす&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="variable"&gt;$srcIplImage&lt;/span&gt;&lt;span&gt;.Smooth(&lt;/span&gt;&lt;span class="variable"&gt;$srcIplImage&lt;/span&gt;&lt;span&gt;, [OpenCvSharp.SmoothType]::Blur, &lt;/span&gt;&lt;span class="variable"&gt;$smooth&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;      &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="comment"&gt;# 二値化&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="variable"&gt;$srcIplImage&lt;/span&gt;&lt;span&gt;.Threshold(&lt;/span&gt;&lt;span class="variable"&gt;$dstIplImage&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$threshold&lt;/span&gt;&lt;span&gt;, 255, [OpenCvSharp.ThresholdType]::Binary)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;      &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="comment"&gt;#　領域検知&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="variable"&gt;$dstIplImage&lt;/span&gt;&lt;span&gt;.SnakeImage(&lt;/span&gt;&lt;span class="variable"&gt;$contour&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$alpha&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$beta&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$gamma&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$size&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$tremCriteria&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$true&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="comment"&gt;#　領域中の4点の座標を取得&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="variable"&gt;$str1&lt;/span&gt;&lt;span&gt; = [String]::Format(&lt;/span&gt;&lt;span class="string"&gt;"1 : (x = {0}, y = {1})"&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$contour&lt;/span&gt;&lt;span&gt;.Get(1).X, &lt;/span&gt;&lt;span class="variable"&gt;$contour&lt;/span&gt;&lt;span&gt;.Get(1).Y)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="variable"&gt;$str25&lt;/span&gt;&lt;span&gt; = [String]::Format(&lt;/span&gt;&lt;span class="string"&gt;"25 : (x = {0}, y = {1})"&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$contour&lt;/span&gt;&lt;span&gt;.Get(25).X, &lt;/span&gt;&lt;span class="variable"&gt;$contour&lt;/span&gt;&lt;span&gt;.Get(25).Y)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="variable"&gt;$str50&lt;/span&gt;&lt;span&gt; = [String]::Format(&lt;/span&gt;&lt;span class="string"&gt;"50 : (x = {0}, y = {1})"&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$contour&lt;/span&gt;&lt;span&gt;.Get(50).X, &lt;/span&gt;&lt;span class="variable"&gt;$contour&lt;/span&gt;&lt;span&gt;.Get(50).Y)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="variable"&gt;$str75&lt;/span&gt;&lt;span&gt; = [String]::Format(&lt;/span&gt;&lt;span class="string"&gt;"75 : (x = {0}, y = {1})"&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$contour&lt;/span&gt;&lt;span&gt;.Get(75).X, &lt;/span&gt;&lt;span class="variable"&gt;$contour&lt;/span&gt;&lt;span&gt;.Get(75).Y)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="comment"&gt;#　ポイントを線で結んで描写&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="keyword"&gt;for&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt; = 0; &lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt; -lt (&lt;/span&gt;&lt;span class="variable"&gt;$contour&lt;/span&gt;&lt;span&gt;.Length - 1); &lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt;++) {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;        &lt;span class="comment"&gt;#　選んだ4点だけ　赤　それ以外は　青&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;        &lt;span class="keyword"&gt;if&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt; -eq 1 -or &lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt; -eq 25 -or &lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt; -eq 50 -or &lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt; -eq 75) {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;            &lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;.Line(&lt;/span&gt;&lt;span class="variable"&gt;$contour&lt;/span&gt;&lt;span&gt;[&lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt;], &lt;/span&gt;&lt;span class="variable"&gt;$contour&lt;/span&gt;&lt;span&gt;[(&lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt; + 1)], &lt;/span&gt;&lt;span class="variable"&gt;$colorPoint&lt;/span&gt;&lt;span&gt;, 6)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;        } &lt;span class="keyword"&gt;else&lt;/span&gt;&lt;span&gt; {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;            &lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;.Line(&lt;/span&gt;&lt;span class="variable"&gt;$contour&lt;/span&gt;&lt;span&gt;[&lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt;], &lt;/span&gt;&lt;span class="variable"&gt;$contour&lt;/span&gt;&lt;span&gt;[(&lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt; + 1)], &lt;/span&gt;&lt;span class="variable"&gt;$colorLine&lt;/span&gt;&lt;span&gt;, 3)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;        }  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    }  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="comment"&gt;# 最初の点と最後の点を結ぶ&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;.Line(&lt;/span&gt;&lt;span class="variable"&gt;$contour&lt;/span&gt;&lt;span&gt;[(&lt;/span&gt;&lt;span class="variable"&gt;$contour&lt;/span&gt;&lt;span&gt;.Length -1)], &lt;/span&gt;&lt;span class="variable"&gt;$contour&lt;/span&gt;&lt;span&gt;[0], &lt;/span&gt;&lt;span class="variable"&gt;$colorLine&lt;/span&gt;&lt;span&gt;, 3)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;      &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="comment"&gt;#　座標をウィンドウに描写&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;.PutText(&lt;/span&gt;&lt;span class="variable"&gt;$str1&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$point1&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$font&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$colorString&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;.PutText(&lt;/span&gt;&lt;span class="variable"&gt;$str25&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$point25&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$font&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$colorString&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;.PutText(&lt;/span&gt;&lt;span class="variable"&gt;$str50&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$point50&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$font&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$colorString&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;.PutText(&lt;/span&gt;&lt;span class="variable"&gt;$str75&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$point75&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$font&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$colorString&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;      &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="variable"&gt;$window&lt;/span&gt;&lt;span&gt;.Image = &lt;/span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;      &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="comment"&gt;#　連続でループするとCPUをたくさん喰うので3秒間をあける&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="builtin"&gt;Start-Sleep&lt;/span&gt;&lt;span&gt; 3  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;}  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$srcIplImage&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$dstIplImage&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$window&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$camera&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-3086298954744795681?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/3086298954744795681/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=3086298954744795681' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/3086298954744795681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/3086298954744795681'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2009/11/powershell_7287.html' title='PowerShellで動画の輪郭検出をしてみる'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-4619492261086196075</id><published>2009-11-14T10:19:00.000+09:00</published><updated>2009-11-14T10:21:20.710+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenCV'/><title type='text'>PowerShellで静止画の輪郭検出をしてみる</title><content type='html'>&lt;div&gt;OpenCVSharpを使用して画像の中の輪郭？色の境界？を検出する。&lt;/div&gt;&lt;div&gt;処理のイメージは、画像の中心からいっぱいに一つの丸を描いて輪郭が出てくるまで徐々に狭めていく。&lt;/div&gt;&lt;div&gt;どれくらいまで敏感に輪郭に反応するかは、&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;$tremCriteria = New-Object OpenCvSharp.CvTermCriteria(270)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;の値を大きくすれば、よりはっきりと囲まれる。&lt;/div&gt;&lt;!-- Stylesheet link --&gt;&lt;link href="http://www.thecomplex.plus.com/styles/SyntaxHighlighter.css" rel="stylesheet" type="text/css"&gt;&lt;!-- Code --&gt;&lt;div class="dp-highlighter" id="hlDiv"&gt;&lt;ol start="1" class="dp-rb"&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span&gt;[void][System.Reflection.Assembly]::LoadFrom((&lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; OpenCvSharp.dll))  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;#　グレースケールで読み込む&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$srcIplImage&lt;/span&gt;&lt;span&gt; = [OpenCvSharp.Cv]::LoadImage((&lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="string"&gt;"src.jpg"&lt;/span&gt;&lt;span&gt;), [OpenCvSharp.LoadMode]::GrayScale)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$dstIplImage&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.IplImage(&lt;/span&gt;&lt;span class="variable"&gt;$srcIplImage&lt;/span&gt;&lt;span&gt;.Size, [OpenCvSharp.BitDepth]::U8, 3)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;[OpenCvSharp.CvPoint[]]&lt;span class="variable"&gt;$contour&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.CvPoint[] 100  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;#　中心点&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$center&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.CvPoint((&lt;/span&gt;&lt;span class="variable"&gt;$srcIplImage&lt;/span&gt;&lt;span&gt;.Width / 2), (&lt;/span&gt;&lt;span class="variable"&gt;$srcIplImage&lt;/span&gt;&lt;span&gt;.Height / 2))  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="comment"&gt;#　全体をかこむ丸を作る&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="keyword"&gt;for&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt; = 0; &lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt; -lt &lt;/span&gt;&lt;span class="variable"&gt;$contour&lt;/span&gt;&lt;span&gt;.Length; &lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt;++) {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="variable"&gt;$contour&lt;/span&gt;&lt;span&gt;[&lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt;] = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.CvPoint([int](&lt;/span&gt;&lt;span class="variable"&gt;$center&lt;/span&gt;&lt;span&gt;.X * [System.Math]::Cos(2 * [System.Math]::PI * &lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt; / &lt;/span&gt;&lt;span class="variable"&gt;$contour&lt;/span&gt;&lt;span&gt;.Length) + &lt;/span&gt;&lt;span class="variable"&gt;$center&lt;/span&gt;&lt;span&gt;.X), [int](&lt;/span&gt;&lt;span class="variable"&gt;$center&lt;/span&gt;&lt;span&gt;.Y * [System.Math]::Sin(2 * [System.Math]::PI * &lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt; / &lt;/span&gt;&lt;span class="variable"&gt;$contour&lt;/span&gt;&lt;span&gt;.Length) + &lt;/span&gt;&lt;span class="variable"&gt;$center&lt;/span&gt;&lt;span&gt;.Y))  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;}  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$size&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.CvSize(15, 15)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$tremCriteria&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.CvTermCriteria(270)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$alpha&lt;/span&gt;&lt;span&gt; = [System.Single]0.45  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$beta&lt;/span&gt;&lt;span&gt; = [System.Single]0.35  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$gamma&lt;/span&gt;&lt;span&gt; = [System.Single]0.2  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="comment"&gt;#　輪郭を検出&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$srcIplImage&lt;/span&gt;&lt;span&gt;.SnakeImage(&lt;/span&gt;&lt;span class="variable"&gt;$contour&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$alpha&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$beta&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$gamma&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$size&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$tremCriteria&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$true&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;[OpenCvSharp.Cv]::CvtColor(&lt;span class="variable"&gt;$srcIplImage&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$dstIplImage&lt;/span&gt;&lt;span&gt;, [OpenCvSharp.ColorConversion]::GrayToRgb)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="comment"&gt;#　赤で輪郭を描く&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$color&lt;/span&gt;&lt;span&gt; = [OpenCvSharp.CvColor]::Red  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="keyword"&gt;for&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt; = 0; &lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt; -lt (&lt;/span&gt;&lt;span class="variable"&gt;$contour&lt;/span&gt;&lt;span&gt;.Length - 1); &lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt;++) {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="variable"&gt;$dstIplImage&lt;/span&gt;&lt;span&gt;.Line(&lt;/span&gt;&lt;span class="variable"&gt;$contour&lt;/span&gt;&lt;span&gt;[&lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt;], &lt;/span&gt;&lt;span class="variable"&gt;$contour&lt;/span&gt;&lt;span&gt;[(&lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt; + 1)], &lt;/span&gt;&lt;span class="variable"&gt;$color&lt;/span&gt;&lt;span&gt;, 2)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;}  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$dstIplImage&lt;/span&gt;&lt;span&gt;.Line(&lt;/span&gt;&lt;span class="variable"&gt;$contour&lt;/span&gt;&lt;span&gt;[(&lt;/span&gt;&lt;span class="variable"&gt;$contour&lt;/span&gt;&lt;span&gt;.Length -1)], &lt;/span&gt;&lt;span class="variable"&gt;$contour&lt;/span&gt;&lt;span&gt;[0], &lt;/span&gt;&lt;span class="variable"&gt;$color&lt;/span&gt;&lt;span&gt;, 2)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$dstIplImage&lt;/span&gt;&lt;span&gt;.SaveImage((&lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="string"&gt;"dst.jpg"&lt;/span&gt;&lt;span&gt;))  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$srcIplImage&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$dstIplImage&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-4619492261086196075?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/4619492261086196075/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=4619492261086196075' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/4619492261086196075'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/4619492261086196075'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2009/11/powershell_14.html' title='PowerShellで静止画の輪郭検出をしてみる'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-6675413474636887702</id><published>2009-11-13T23:15:00.001+09:00</published><updated>2009-11-13T23:17:04.710+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenCV'/><title type='text'>PowerShellで動画の差分をとってみる</title><content type='html'>&lt;div&gt;OpenCVSharpを使用してWebカメラからキャプチャーして、差分を動画で表示する。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;処理は、静止画の時とほぼ同じ。&lt;/div&gt;&lt;div&gt;一応より差分を分かりやすくするためにぼかしを入れている。&lt;/div&gt;&lt;!-- Stylesheet link --&gt;&lt;link href="http://www.thecomplex.plus.com/styles/SyntaxHighlighter.css" rel="stylesheet" type="text/css"&gt;&lt;!-- Code --&gt;&lt;div class="dp-highlighter" id="hlDiv"&gt;&lt;ol start="1" class="dp-rb"&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span&gt;[void][System.Reflection.Assembly]::LoadFrom((&lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; OpenCvSharp.dll))  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;# カメラの情報を取得&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$camera&lt;/span&gt;&lt;span&gt; = [OpenCvSharp.CvCapture]::FromCamera(0)   &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$window&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.CvWindow(&lt;/span&gt;&lt;span class="string"&gt;"SampleCapture"&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="keyword"&gt;while&lt;/span&gt;&lt;span&gt; ( [OpenCvSharp.CvWindow]::WaitKey(10) -lt 0 ) {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="variable"&gt;$camera&lt;/span&gt;&lt;span&gt;.QueryFrame()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="variable"&gt;$srcIplImage&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.IplImage( &lt;/span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;.Size, [OpenCvSharp.BitDepth]::U8, 1)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="comment"&gt;#　グレースケールに変換&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    [OpenCvSharp.Cv]::CvtColor(&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span class="variable"&gt;$srcIplImage&lt;/span&gt;&lt;span&gt;, [OpenCvSharp.ColorConversion]::BgraToGray)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;      &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="variable"&gt;$dstIplImage1&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.IplImage( &lt;/span&gt;&lt;span class="variable"&gt;$srcIplImage&lt;/span&gt;&lt;span&gt;.Size, [OpenCvSharp.BitDepth]::U8, 1)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;      &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="comment"&gt;#　ぼかし&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="variable"&gt;$srcIplImage&lt;/span&gt;&lt;span&gt;.Smooth(&lt;/span&gt;&lt;span class="variable"&gt;$srcIplImage&lt;/span&gt;&lt;span&gt;, [OpenCvSharp.SmoothType]::Blur, 5)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;      &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="comment"&gt;# 白黒に変換&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="variable"&gt;$srcIplImage&lt;/span&gt;&lt;span&gt;.Threshold(&lt;/span&gt;&lt;span class="variable"&gt;$dstIplImage1&lt;/span&gt;&lt;span&gt;, 128, 255, [OpenCvSharp.ThresholdType]::Binary)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;      &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="comment"&gt;#　差分出力先&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="variable"&gt;$dstIplImage2&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.IplImage(&lt;/span&gt;&lt;span class="variable"&gt;$dstIplImage1&lt;/span&gt;&lt;span&gt;.Size, &lt;/span&gt;&lt;span class="variable"&gt;$dstIplImage1&lt;/span&gt;&lt;span&gt;.Depth, &lt;/span&gt;&lt;span class="variable"&gt;$dstIplImage1&lt;/span&gt;&lt;span&gt;.NChannels)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="keyword"&gt;if&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span class="variable"&gt;$tempIplImage&lt;/span&gt;&lt;span&gt; -ne &lt;/span&gt;&lt;span class="variable"&gt;$null&lt;/span&gt;&lt;span&gt;) {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;        &lt;span class="comment"&gt;#　差分をとる&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;        [OpenCvSharp.Cv]::AbsDiff(&lt;span class="variable"&gt;$dstIplImage1&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$tempIplImage&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$dstIplImage2&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;        &lt;span class="comment"&gt;#　差分を表示する&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;        &lt;span class="variable"&gt;$window&lt;/span&gt;&lt;span&gt;.Image = &lt;/span&gt;&lt;span class="variable"&gt;$dstIplImage2&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    }  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;      &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="comment"&gt;#　今回の元データをTempに入れる&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="variable"&gt;$tempIplImage&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="variable"&gt;$dstIplImage1&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;}  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$srcIplImage&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$dstIplImage1&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$dstIplImage2&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$tempIplImage&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$window&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$camera&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-6675413474636887702?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/6675413474636887702/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=6675413474636887702' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/6675413474636887702'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/6675413474636887702'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2009/11/powershell_1044.html' title='PowerShellで動画の差分をとってみる'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-7800837774053031791</id><published>2009-11-13T22:16:00.003+09:00</published><updated>2009-11-13T22:22:20.283+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenCV'/><title type='text'>PowerShellで静止画の差分をとる</title><content type='html'>&lt;div&gt;OpenCVSharpを使用して二つの画像から差分をとって保存してみる。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;同じ背景の画像を撮影して、一回目に撮ったものと二回目に撮ったものの差分をとる。&lt;/div&gt;&lt;div&gt;差分画像は、違う部分に色が付いていて、まったく同じ部分は黒で表示される。&lt;/div&gt;&lt;div&gt;ただ、それをそのまま見てもわかりにくかったので、二極化して白黒にした。&lt;/div&gt;&lt;div&gt;白黒にすると差分の部分だけが白くなるので見た目にわかりやすい。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ここでは、差分処理がどう動くのかを知りたかったので、差分画像を保存してから、それを読み込んで白黒にしてみた。&lt;/div&gt;&lt;div&gt;そのまま保存した画像と比較して見るとわかりやすいと思う。&lt;/div&gt;&lt;!-- Stylesheet link --&gt;&lt;link href="http://www.thecomplex.plus.com/styles/SyntaxHighlighter.css" rel="stylesheet" type="text/css"&gt;&lt;!-- Code --&gt;&lt;div class="dp-highlighter" id="hlDiv"&gt;&lt;ol start="1" class="dp-rb"&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span&gt;[void][System.Reflection.Assembly]::LoadFrom((&lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; OpenCvSharp.dll))  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;# 背景画像&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$srcIplImage1&lt;/span&gt;&lt;span&gt; = [OpenCvSharp.Cv]::LoadImage((&lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="string"&gt;"a.jpg"&lt;/span&gt;&lt;span&gt;))  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="comment"&gt;#　背景の前に何か写した画像&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$srcIplImage2&lt;/span&gt;&lt;span&gt; = [OpenCvSharp.Cv]::LoadImage((&lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="string"&gt;"b.jpg"&lt;/span&gt;&lt;span&gt;))  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;#　差分出力先&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$dstIplImage1&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.IplImage(&lt;/span&gt;&lt;span class="variable"&gt;$srcIplImage1&lt;/span&gt;&lt;span&gt;.Size, &lt;/span&gt;&lt;span class="variable"&gt;$srcIplImage1&lt;/span&gt;&lt;span&gt;.Depth, &lt;/span&gt;&lt;span class="variable"&gt;$srcIplImage1&lt;/span&gt;&lt;span&gt;.NChannels)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="comment"&gt;#　差分をとる&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;[OpenCvSharp.Cv]::AbsDiff(&lt;span class="variable"&gt;$srcIplImage1&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$srcIplImage2&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$dstIplImage1&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;# 差分の画像を保存　変わらなかったところは黒&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$dstIplImage1&lt;/span&gt;&lt;span&gt;.SaveImage((&lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="string"&gt;"c.jpg"&lt;/span&gt;&lt;span&gt;))  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$srcIplImage1&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$srcIplImage2&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$dstIplImage1&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="comment"&gt;#　2極化して白黒にした方がわかりやすい&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;#　差分の部分だけが白くなる&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$srcIplImage3&lt;/span&gt;&lt;span&gt; = [OpenCvSharp.Cv]::LoadImage( (&lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="string"&gt;"c.jpg"&lt;/span&gt;&lt;span&gt;), [OpenCvSharp.LoadMode]::GrayScale)     &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$dstIplImage2&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.IplImage( &lt;/span&gt;&lt;span class="variable"&gt;$srcIplImage3&lt;/span&gt;&lt;span&gt;.Size, &lt;/span&gt;&lt;span class="variable"&gt;$srcIplImage3&lt;/span&gt;&lt;span&gt;.Depth, 1)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$srcIplImage3&lt;/span&gt;&lt;span&gt;.Threshold(&lt;/span&gt;&lt;span class="variable"&gt;$dstIplImage2&lt;/span&gt;&lt;span&gt;, 128, 255, [OpenCvSharp.ThresholdType]::Binary)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$dstIplImage2&lt;/span&gt;&lt;span&gt;.SaveImage((&lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="string"&gt;"d.jpg"&lt;/span&gt;&lt;span&gt;))  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$srcIplImage3&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$dstIplImage2&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-7800837774053031791?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/7800837774053031791/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=7800837774053031791' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/7800837774053031791'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/7800837774053031791'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2009/11/powershell_13.html' title='PowerShellで静止画の差分をとる'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-1663310240804142663</id><published>2009-11-11T20:22:00.002+09:00</published><updated>2009-11-11T20:26:30.251+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><title type='text'>PowerShellでタスクトレイアイコンにバルーンウィンドウを表示してみる</title><content type='html'>&lt;div&gt;PowerShellでタスクトレイアイコンにバルーンウィンドウを表示させる。&lt;/div&gt;&lt;div&gt;あんまり使うことはないかもしれないけど、PowerShell 2.0からはバックグラウンドで処理を実行できるようになったので、それの終了を知らせるのには役に立つかもしれない。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;下のコードを「Show-BalloonTip.ps1」という名前でパスの通ったところにおいて&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&gt; Show-BalloonTip -title ジョブ -body 処理が終了しました。 -toolTipIcon Info&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;っと実行する。ToolTipIconは「Info」「Warning「Error「None」の4つのアイコン（なにも表示されないのも含めて）を表示させることができる。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;表示時間を1ミリ秒にしているけど、うちの環境では1ミリ秒でも長いこと表示されっぱなしになってた（笑）&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;-- Show-BalloonTip.ps1 --&lt;/div&gt;&lt;!-- Stylesheet link --&gt;&lt;link href="http://www.thecomplex.plus.com/styles/SyntaxHighlighter.css" rel="stylesheet" type="text/css"&gt;&lt;!-- Code --&gt;&lt;div class="dp-highlighter" id="hlDiv"&gt;&lt;ol start="1" class="dp-rb"&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="keyword"&gt;param&lt;/span&gt;&lt;span&gt;([int]&lt;/span&gt;&lt;span class="variable"&gt;$timeout&lt;/span&gt;&lt;span&gt; = 1, [string]&lt;/span&gt;&lt;span class="variable"&gt;$tilte&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="string"&gt;"件名"&lt;/span&gt;&lt;span&gt;, [string]&lt;/span&gt;&lt;span class="variable"&gt;$body&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="string"&gt;"本文"&lt;/span&gt;&lt;span&gt;, [string]&lt;/span&gt;&lt;span class="variable"&gt;$toolTipIcon&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="string"&gt;"Info"&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;[Void][System.Reflection.Assembly]::LoadWithPartialName(&lt;span class="string"&gt;"System.Windows.Forms"&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$notifyIcon&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; System.Windows.Forms.NotifyIcon  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="comment"&gt;#　PowerShell.exeからアイコンを抽出する System.Drawing.Icon型&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$powerShellExe&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="string"&gt;"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe"&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$icon&lt;/span&gt;&lt;span&gt; = [System.Drawing.Icon]::ExtractAssociatedIcon(&lt;/span&gt;&lt;span class="variable"&gt;$powerShellExe&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$notifyIcon&lt;/span&gt;&lt;span&gt;.Icon = &lt;/span&gt;&lt;span class="variable"&gt;$icon&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$notifyIcon&lt;/span&gt;&lt;span&gt;.Visible = &lt;/span&gt;&lt;span class="variable"&gt;$true&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;#　引数は、　表示時間（ミリ秒）　件名　本文　件名の前のアイコン（System.Windows.Forms.ToolTipIcon列挙体）&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$notifyIcon&lt;/span&gt;&lt;span&gt;.ShowBalloonTip(&lt;/span&gt;&lt;span class="variable"&gt;$timeout&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$tilte&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$body&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$toolTipIcon&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-1663310240804142663?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/1663310240804142663/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=1663310240804142663' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/1663310240804142663'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/1663310240804142663'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2009/11/powershell_11.html' title='PowerShellでタスクトレイアイコンにバルーンウィンドウを表示してみる'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-585984135219989372</id><published>2009-11-07T07:59:00.002+09:00</published><updated>2009-11-07T08:01:59.133+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='その他'/><title type='text'>wgetの使い方メモ</title><content type='html'>&lt;div&gt;テキストファイルに一行毎に書かれたURLで同じフォルダ内にないファイルを三秒間隔をあけてダウンロードする。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&gt;  wget -nc -nv -w 3 -t 1 -i list.txt&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;たまにうまくいかない時があったので、PowerShellを使って一個づつダウンロードする場合。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&gt;  cat list.txt | % { wget $_ }&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-585984135219989372?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/585984135219989372/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=585984135219989372' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/585984135219989372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/585984135219989372'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2009/11/wget.html' title='wgetの使い方メモ'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-6398876713500456730</id><published>2009-11-07T07:53:00.004+09:00</published><updated>2009-11-07T12:27:47.161+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><title type='text'>PowerShellでHTMLファイルから画像のURLを取り出す</title><content type='html'>&lt;div&gt;ワンライナーでできるのは便利。&lt;/div&gt;&lt;div&gt;なんとなく、もっと短くできそうな気がするけど、今の俺ではこの長さ。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;正規表現の部分を変えれば、「zip」だけを返したりも出来る。ここでは、JPEG、GIF、PNG、BMPをマッチさせている。&lt;/div&gt;&lt;div&gt;抜きたかったHTMLでしかテストしてないから、上手くいかないサイトもあるかも。&lt;/div&gt;&lt;!-- Stylesheet link --&gt;&lt;link href="http://www.thecomplex.plus.com/styles/SyntaxHighlighter.css" rel="stylesheet" type="text/css"&gt;&lt;!-- Code --&gt;&lt;div class="dp-highlighter" id="hlDiv"&gt;&lt;ol start="1" class="dp-rb"&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="builtin"&gt;Get-Content&lt;/span&gt;&lt;span&gt; foo.html | % { &lt;/span&gt;&lt;span class="keyword"&gt;if&lt;/span&gt;&lt;span&gt; ( &lt;/span&gt;&lt;span class="variable"&gt;$_&lt;/span&gt;&lt;span&gt; -match &lt;/span&gt;&lt;span class="string"&gt;"http://.*\.(jpg|jpeg|gif|png|bmp)"&lt;/span&gt;&lt;span&gt;) { &lt;/span&gt;&lt;span class="variable"&gt;$Matches&lt;/span&gt;&lt;span&gt;.Values | % { &lt;/span&gt;&lt;span class="variable"&gt;$_&lt;/span&gt;&lt;span&gt;.Split(&lt;/span&gt;&lt;span class="string"&gt;"`"&lt;/span&gt;&lt;span class="string"&gt;") | % { if ($_ -match "&lt;/span&gt;&lt;span&gt;\.(jpg&lt;/span&gt;&lt;span class="variable"&gt;|jpeg&lt;/span&gt;&lt;span class="variable"&gt;|gif&lt;/span&gt;&lt;span class="variable"&gt;|png&lt;/span&gt;&lt;span class="variable"&gt;|bmp&lt;/span&gt;&lt;span&gt;)") { &lt;/span&gt;&lt;span class="keyword"&gt;return&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$_&lt;/span&gt;&lt;span&gt;  }}}}}   &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;ついでに、某大きな掲示板用&lt;/div&gt;&lt;div&gt;本文に”ttp://～～～/～～～”が普通なので、最初にばっさりHTMLのタグを消してしまってから処理している。&lt;/div&gt;&lt;!-- Stylesheet link --&gt;&lt;link href="http://www.thecomplex.plus.com/styles/SyntaxHighlighter.css" rel="stylesheet" type="text/css"&gt;&lt;!-- Code --&gt;&lt;div class="dp-highlighter" id="hlDiv"&gt;&lt;ol start="1" class="dp-rb"&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span class="builtin"&gt;Get-Content&lt;/span&gt;&lt;span&gt; foo.html) -replace &lt;/span&gt;&lt;span class="string"&gt;"&amp;lt;.*?&amp;gt;"&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span class="string"&gt;""&lt;/span&gt;&lt;span&gt; | % { &lt;/span&gt;&lt;span class="keyword"&gt;if&lt;/span&gt;&lt;span&gt; ( &lt;/span&gt;&lt;span class="variable"&gt;$_&lt;/span&gt;&lt;span&gt; -match &lt;/span&gt;&lt;span class="string"&gt;"ttp://.*\.(jpg|jpeg|gif|png|bmp)"&lt;/span&gt;&lt;span&gt;) { &lt;/span&gt;&lt;span class="variable"&gt;$Matches&lt;/span&gt;&lt;span&gt;.values | % { &lt;/span&gt;&lt;span class="variable"&gt;$_&lt;/span&gt;&lt;span&gt;.Split() | % { &lt;/span&gt;&lt;span class="keyword"&gt;if&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span class="variable"&gt;$_&lt;/span&gt;&lt;span&gt; -match &lt;/span&gt;&lt;span class="string"&gt;"\.(jpg|jpeg|gif|png|bmp)"&lt;/span&gt;&lt;span&gt;) { &lt;/span&gt;&lt;span class="keyword"&gt;return&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$_&lt;/span&gt;&lt;span&gt;.Replace(&lt;/span&gt;&lt;span class="string"&gt;"ttp://"&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span class="string"&gt;"http://"&lt;/span&gt;&lt;span&gt;) }}}}}  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-6398876713500456730?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/6398876713500456730/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=6398876713500456730' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/6398876713500456730'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/6398876713500456730'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2009/11/powershellhtmlurl.html' title='PowerShellでHTMLファイルから画像のURLを取り出す'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-8725605543723616465</id><published>2009-11-06T21:23:00.002+09:00</published><updated>2009-11-06T21:26:50.413+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenCV'/><title type='text'>PowerShellで画像の色をカウントする</title><content type='html'>&lt;div&gt;OpenCVSharpを使用して画像の白、黒、赤、青、緑、黄色、マゼンタ、シアン、その他の色に該当する色を数えてみる。&lt;/div&gt;&lt;div&gt;下のコードには、その色に該当するかについて、あそびをまったく入れていないのでほとんどが、その他の色になってしまう。&lt;/div&gt;&lt;div&gt;けど、今回は、白黒画像をカウントする事が目的で、白と黒だけちゃんと取れればよかっただけなのでこれで良しとする。&lt;/div&gt;&lt;div&gt;今度、ある程度まともな条件で取得できるようにしよう。&lt;/div&gt;&lt;div&gt;あと、この方法だとかなり遅いので、なにか別な取得方法がないかについても調べておこう。&lt;/div&gt;&lt;!-- Stylesheet link --&gt;&lt;link href="http://www.thecomplex.plus.com/styles/SyntaxHighlighter.css" rel="stylesheet" type="text/css"&gt;&lt;!-- Code --&gt;&lt;div class="dp-highlighter" id="hlDiv"&gt;&lt;ol start="1" class="dp-rb"&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span&gt;[void][System.Reflection.Assembly]::LoadFrom((&lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; OpenCvSharp.dll))  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt; = [OpenCvSharp.Cv]::LoadImage((&lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="string"&gt;"foo.jpg"&lt;/span&gt;&lt;span&gt;))   &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="keyword"&gt;for&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span class="variable"&gt;$x&lt;/span&gt;&lt;span&gt; = 0; &lt;/span&gt;&lt;span class="variable"&gt;$x&lt;/span&gt;&lt;span&gt; -lt &lt;/span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;.Width; &lt;/span&gt;&lt;span class="variable"&gt;$x&lt;/span&gt;&lt;span&gt;++) {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="keyword"&gt;for&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span class="variable"&gt;$y&lt;/span&gt;&lt;span&gt; = 0; &lt;/span&gt;&lt;span class="variable"&gt;$y&lt;/span&gt;&lt;span&gt; -lt &lt;/span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;.Height; &lt;/span&gt;&lt;span class="variable"&gt;$y&lt;/span&gt;&lt;span&gt;++) {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;        &lt;span class="comment"&gt;# CvColor型にキャスト&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;        &lt;span class="variable"&gt;$cvColor&lt;/span&gt;&lt;span&gt; = [OpenCvSharp.CvColor]&lt;/span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;.Get2D(&lt;/span&gt;&lt;span class="variable"&gt;$y&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$x&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;          &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;        &lt;span class="variable"&gt;$count&lt;/span&gt;&lt;span&gt;++  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;        &lt;span class="keyword"&gt;switch&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span class="variable"&gt;$cvColor&lt;/span&gt;&lt;span&gt;) {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;            {&lt;span class="variable"&gt;$_&lt;/span&gt;&lt;span&gt; -eq [OpenCvSharp.CvColor]::White} {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;                &lt;span class="variable"&gt;$white&lt;/span&gt;&lt;span&gt;++      &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;                break  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;            }  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;            {&lt;span class="variable"&gt;$_&lt;/span&gt;&lt;span&gt; -eq [OpenCvSharp.CvColor]::Black} {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;                &lt;span class="variable"&gt;$black&lt;/span&gt;&lt;span&gt;++  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;                break  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;            }  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;            {&lt;span class="variable"&gt;$_&lt;/span&gt;&lt;span&gt; -eq [OpenCvSharp.CvColor]::Red} {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;                &lt;span class="variable"&gt;$red&lt;/span&gt;&lt;span&gt;++  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;                break  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;            }  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;            {&lt;span class="variable"&gt;$_&lt;/span&gt;&lt;span&gt; -eq [OpenCvSharp.CvColor]::Blue} {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;                &lt;span class="variable"&gt;$blue&lt;/span&gt;&lt;span&gt;++  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;                break  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;            }  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;            {&lt;span class="variable"&gt;$_&lt;/span&gt;&lt;span&gt; -eq [OpenCvSharp.CvColor]::Green} {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;                &lt;span class="variable"&gt;$green&lt;/span&gt;&lt;span&gt;++  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;                break  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;            }  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;            {&lt;span class="variable"&gt;$_&lt;/span&gt;&lt;span&gt; -eq [OpenCvSharp.CvColor]::Yellow} {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;                &lt;span class="variable"&gt;$yellow&lt;/span&gt;&lt;span&gt;++  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;                break  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;            }  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;            {&lt;span class="variable"&gt;$_&lt;/span&gt;&lt;span&gt; -eq [OpenCvSharp.CvColor]::Magenta} {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;                &lt;span class="variable"&gt;$magenta&lt;/span&gt;&lt;span&gt;++  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;                break  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;            }  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;            {&lt;span class="variable"&gt;$_&lt;/span&gt;&lt;span&gt; -eq [OpenCvSharp.CvColor]::Cyan} {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;                &lt;span class="variable"&gt;$cyan&lt;/span&gt;&lt;span&gt;++  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;                break  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;            }  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;            default {  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;                &lt;span class="variable"&gt;$other&lt;/span&gt;&lt;span&gt;++  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;            }  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;        }  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    }  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;}  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="builtin"&gt;Write-Host&lt;/span&gt;&lt;span&gt; White = (&lt;/span&gt;&lt;span class="variable"&gt;$white&lt;/span&gt;&lt;span&gt; / &lt;/span&gt;&lt;span class="variable"&gt;$count&lt;/span&gt;&lt;span&gt;).ToString(&lt;/span&gt;&lt;span class="string"&gt;"00.0%"&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="builtin"&gt;Write-Host&lt;/span&gt;&lt;span&gt; Black = (&lt;/span&gt;&lt;span class="variable"&gt;$black&lt;/span&gt;&lt;span&gt; / &lt;/span&gt;&lt;span class="variable"&gt;$count&lt;/span&gt;&lt;span&gt;).ToString(&lt;/span&gt;&lt;span class="string"&gt;"00.0%"&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="builtin"&gt;Write-Host&lt;/span&gt;&lt;span&gt; Red = (&lt;/span&gt;&lt;span class="variable"&gt;$red&lt;/span&gt;&lt;span&gt; / &lt;/span&gt;&lt;span class="variable"&gt;$count&lt;/span&gt;&lt;span&gt;).ToString(&lt;/span&gt;&lt;span class="string"&gt;"00.0%"&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="builtin"&gt;Write-Host&lt;/span&gt;&lt;span&gt; Blue = (&lt;/span&gt;&lt;span class="variable"&gt;$blue&lt;/span&gt;&lt;span&gt; / &lt;/span&gt;&lt;span class="variable"&gt;$count&lt;/span&gt;&lt;span&gt;).ToString(&lt;/span&gt;&lt;span class="string"&gt;"00.0%"&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="builtin"&gt;Write-Host&lt;/span&gt;&lt;span&gt; Green = (&lt;/span&gt;&lt;span class="variable"&gt;$green&lt;/span&gt;&lt;span&gt; / &lt;/span&gt;&lt;span class="variable"&gt;$count&lt;/span&gt;&lt;span&gt;).ToString(&lt;/span&gt;&lt;span class="string"&gt;"00.0%"&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="builtin"&gt;Write-Host&lt;/span&gt;&lt;span&gt; Yellow = (&lt;/span&gt;&lt;span class="variable"&gt;$yellow&lt;/span&gt;&lt;span&gt; / &lt;/span&gt;&lt;span class="variable"&gt;$count&lt;/span&gt;&lt;span&gt;).ToString(&lt;/span&gt;&lt;span class="string"&gt;"00.0%"&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="builtin"&gt;Write-Host&lt;/span&gt;&lt;span&gt; Magenta = (&lt;/span&gt;&lt;span class="variable"&gt;$magenta&lt;/span&gt;&lt;span&gt; / &lt;/span&gt;&lt;span class="variable"&gt;$count&lt;/span&gt;&lt;span&gt;).ToString(&lt;/span&gt;&lt;span class="string"&gt;"00.0%"&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="builtin"&gt;Write-Host&lt;/span&gt;&lt;span&gt; Cyan = (&lt;/span&gt;&lt;span class="variable"&gt;$cyan&lt;/span&gt;&lt;span&gt; / &lt;/span&gt;&lt;span class="variable"&gt;$count&lt;/span&gt;&lt;span&gt;).ToString(&lt;/span&gt;&lt;span class="string"&gt;"00.0%"&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="builtin"&gt;Write-Host&lt;/span&gt;&lt;span&gt; Other = (&lt;/span&gt;&lt;span class="variable"&gt;$other&lt;/span&gt;&lt;span&gt; / &lt;/span&gt;&lt;span class="variable"&gt;$count&lt;/span&gt;&lt;span&gt;).ToString(&lt;/span&gt;&lt;span class="string"&gt;"00.0%"&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-8725605543723616465?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/8725605543723616465/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=8725605543723616465' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/8725605543723616465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/8725605543723616465'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2009/11/powershell.html' title='PowerShellで画像の色をカウントする'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-6614380359024973445</id><published>2009-10-31T10:55:00.001+09:00</published><updated>2009-10-31T10:58:18.777+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenCV'/><title type='text'>PowerShellで動画を白黒でキャプチャー</title><content type='html'>&lt;div&gt;OpenCVSharpを使用して、動画を白黒でキャプチャーする。&lt;/div&gt;&lt;div&gt;グレースケールの時と同じで、読み込む→グレースケールに変換→白黒に変換の順に行う。&lt;/div&gt;&lt;div&gt;最後に変換したものをウィンドウに表示させる。&lt;/div&gt;&lt;!-- Stylesheet link --&gt;&lt;link href="http://www.thecomplex.plus.com/styles/SyntaxHighlighter.css" rel="stylesheet" type="text/css"&gt;&lt;!-- Code --&gt;&lt;div class="dp-highlighter" id="hlDiv"&gt;&lt;ol start="1" class="dp-rb"&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span&gt;[void][System.Reflection.Assembly]::LoadFrom((&lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; OpenCvSharp.dll))  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;# カメラの情報を取得&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$camera&lt;/span&gt;&lt;span&gt; = [OpenCvSharp.CvCapture]::FromCamera(0)   &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$window&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.CvWindow(&lt;/span&gt;&lt;span class="string"&gt;"SampleCapture"&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$threshold&lt;/span&gt;&lt;span&gt; = 128 &lt;/span&gt;&lt;span class="comment"&gt;#　白色か黒色かのしきい値&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="keyword"&gt;while&lt;/span&gt;&lt;span&gt; ( [OpenCvSharp.CvWindow]::WaitKey(10) -lt 0 ) {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="variable"&gt;$camera&lt;/span&gt;&lt;span&gt;.QueryFrame()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="variable"&gt;$srcIplImage&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.IplImage( &lt;/span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;.Size, [OpenCvSharp.BitDepth]::U8, 1)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="comment"&gt;#　グレースケールに変換&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    [OpenCvSharp.Cv]::CvtColor(&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span class="variable"&gt;$srcIplImage&lt;/span&gt;&lt;span&gt;, [OpenCvSharp.ColorConversion]::BgraToGray)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;      &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="variable"&gt;$dstIplImage&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.IplImage( &lt;/span&gt;&lt;span class="variable"&gt;$srcIplImage&lt;/span&gt;&lt;span&gt;.Size, [OpenCvSharp.BitDepth]::U8, 1)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="comment"&gt;# 白黒に変換&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="variable"&gt;$srcIplImage&lt;/span&gt;&lt;span&gt;.Threshold(&lt;/span&gt;&lt;span class="variable"&gt;$dstIplImage&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$threshold&lt;/span&gt;&lt;span&gt;, 255, [OpenCvSharp.ThresholdType]::Binary)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;      &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="variable"&gt;$window&lt;/span&gt;&lt;span&gt;.Image = &lt;/span&gt;&lt;span class="variable"&gt;$dstIplImage&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;}  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$srcIplImage&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$dstIplImage&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$window&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$camera&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-6614380359024973445?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/6614380359024973445/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=6614380359024973445' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/6614380359024973445'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/6614380359024973445'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2009/10/powershell_8184.html' title='PowerShellで動画を白黒でキャプチャー'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-566382236837155724</id><published>2009-10-31T10:52:00.001+09:00</published><updated>2009-10-31T10:55:24.344+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenCV'/><title type='text'>PowerShellで動画をグレースケールでキャプチャー</title><content type='html'>&lt;div&gt;OpenCVSharpを使用して、動画をグレースケールでキャプチャーする。&lt;/div&gt;&lt;div&gt;静止画をグレースケールにするのと同じ方法で、一度、IplImage型でWebカメラの映像を読み込んでからグレースケールに変換し、変換したものをウィンドウに表示させる。&lt;/div&gt;&lt;!-- Stylesheet link --&gt;&lt;link href="http://www.thecomplex.plus.com/styles/SyntaxHighlighter.css" rel="stylesheet" type="text/css"&gt;&lt;!-- Code --&gt;&lt;div class="dp-highlighter" id="hlDiv"&gt;&lt;ol start="1" class="dp-rb"&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span&gt;[void][System.Reflection.Assembly]::LoadFrom((&lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; OpenCvSharp.dll))  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;# カメラの情報を取得&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$camera&lt;/span&gt;&lt;span&gt; = [OpenCvSharp.CvCapture]::FromCamera(0)   &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$window&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.CvWindow(&lt;/span&gt;&lt;span class="string"&gt;"SampleCapture"&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="keyword"&gt;while&lt;/span&gt;&lt;span&gt; ( [OpenCvSharp.CvWindow]::WaitKey(10) -lt 0 ) {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="variable"&gt;$srcIplImage&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="variable"&gt;$camera&lt;/span&gt;&lt;span&gt;.QueryFrame()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="variable"&gt;$dstIplImage&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.IplImage( &lt;/span&gt;&lt;span class="variable"&gt;$srcIplImage&lt;/span&gt;&lt;span&gt;.Size, [OpenCvSharp.BitDepth]::U8, 1)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="comment"&gt;#　グレースケールに変換&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    [OpenCvSharp.Cv]::CvtColor(&lt;span class="variable"&gt;$srcIplImage&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span class="variable"&gt;$dstIplImage&lt;/span&gt;&lt;span&gt;, [OpenCvSharp.ColorConversion]::BgraToGray)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="variable"&gt;$window&lt;/span&gt;&lt;span&gt;.Image = &lt;/span&gt;&lt;span class="variable"&gt;$dstIplImage&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;}  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$srcIplImage&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$dstIplImage&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$window&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$camera&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-566382236837155724?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/566382236837155724/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=566382236837155724' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/566382236837155724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/566382236837155724'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2009/10/powershell_31.html' title='PowerShellで動画をグレースケールでキャプチャー'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-8994664654354633729</id><published>2009-10-29T20:04:00.001+09:00</published><updated>2009-10-29T20:07:16.931+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenCV'/><title type='text'>PowerShellで動画の顔検出をしてみる</title><content type='html'>&lt;div&gt;OpenCvSharpを使用して、Webカメラでキャプチャーしながら顔検出をしてみる。&lt;/div&gt;&lt;div&gt;基本的には静止画の時と同じで、その部分のコードを動画のキャプチャーに埋め込んだだけ。&lt;/div&gt;&lt;!-- Stylesheet link --&gt;&lt;link href="http://www.thecomplex.plus.com/styles/SyntaxHighlighter.css" rel="stylesheet" type="text/css"&gt;&lt;!-- Code --&gt;&lt;div class="dp-highlighter" id="hlDiv"&gt;&lt;ol start="1" class="dp-rb"&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span&gt;[void][System.Reflection.Assembly]::LoadFrom((&lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; OpenCvSharp.dll))  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;#顔を検出するためにHaar分類器のカスケードを用いる&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$color&lt;/span&gt;&lt;span&gt; = [OpenCvSharp.CvColor]::Red  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$scale&lt;/span&gt;&lt;span&gt; = 1.04;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$scaleFactor&lt;/span&gt;&lt;span&gt; = 1.139;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$minNeighbors&lt;/span&gt;&lt;span&gt; = 2;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$camera&lt;/span&gt;&lt;span&gt; = [OpenCvSharp.CvCapture]::FromCamera(0)   &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$window&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.CvWindow(&lt;/span&gt;&lt;span class="string"&gt;"SampleCapture"&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$srcWidth&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="variable"&gt;$camera&lt;/span&gt;&lt;span&gt;.FrameWidth  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$srcHeight&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="variable"&gt;$camera&lt;/span&gt;&lt;span&gt;.FrameHeight  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$srcSize&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.CvSize([int]&lt;/span&gt;&lt;span class="variable"&gt;$srcWidth&lt;/span&gt;&lt;span&gt;, [int]&lt;/span&gt;&lt;span class="variable"&gt;$srcHeight&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$srcIplImage&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.IplImage( &lt;/span&gt;&lt;span class="variable"&gt;$srcSize&lt;/span&gt;&lt;span&gt;, [OpenCvSharp.BitDepth]::U8, 1)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$dstWidth&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="variable"&gt;$camera&lt;/span&gt;&lt;span&gt;.FrameWidth / &lt;/span&gt;&lt;span class="variable"&gt;$scale&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$dstHeight&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="variable"&gt;$camera&lt;/span&gt;&lt;span&gt;.FrameHeight / &lt;/span&gt;&lt;span class="variable"&gt;$scale&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$dstSize&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.CvSize([int]&lt;/span&gt;&lt;span class="variable"&gt;$dstWidth&lt;/span&gt;&lt;span&gt;, [int]&lt;/span&gt;&lt;span class="variable"&gt;$dstHeight&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$dstIplImage&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.IplImage( &lt;/span&gt;&lt;span class="variable"&gt;$dstSize&lt;/span&gt;&lt;span&gt;, [OpenCvSharp.BitDepth]::U8, 1)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="keyword"&gt;while&lt;/span&gt;&lt;span&gt; ( [OpenCvSharp.CvWindow]::WaitKey(10) -lt 0 ) {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="variable"&gt;$camera&lt;/span&gt;&lt;span&gt;.QueryFrame()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="comment"&gt;#顔検出用の画像の生成&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    [OpenCvSharp.Cv]::CvtColor(&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span class="variable"&gt;$srcIplImage&lt;/span&gt;&lt;span&gt;, [OpenCvSharp.ColorConversion]::BgraToGray)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    [OpenCvSharp.Cv]::Resize(&lt;span class="variable"&gt;$srcIplImage&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$dstIplImage&lt;/span&gt;&lt;span&gt;, [OpenCvSharp.Interpolation]::Linear)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    [OpenCvSharp.Cv]::EqualizeHist(&lt;span class="variable"&gt;$dstIplImage&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span class="variable"&gt;$dstIplImage&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;      &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="variable"&gt;$cascade&lt;/span&gt;&lt;span&gt; = [OpenCvSharp.CvHaarClassifierCascade]::FromFile((&lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="string"&gt;"haarcascade_frontalface_alt.xml"&lt;/span&gt;&lt;span&gt;))   &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;      &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="variable"&gt;$storage&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.CvMemStorage  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="variable"&gt;$storage&lt;/span&gt;&lt;span&gt;.Clear()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="comment"&gt;# 顔の検出&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="variable"&gt;$faces&lt;/span&gt;&lt;span&gt; = [OpenCvSharp.Cv]::HaarDetectObjects(&lt;/span&gt;&lt;span class="variable"&gt;$dstIplImage&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$cascade&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$storage&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$scaleFactor&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$minNeighbors&lt;/span&gt;&lt;span&gt;, 0, (&lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.CvSize(30, 30)));  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;      &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="builtin"&gt;Write-Host&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$faces&lt;/span&gt;&lt;span&gt;.Total  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="comment"&gt;# 検出された全ての顔位置に四角い枠を描画する&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="keyword"&gt;for&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt; = 0; &lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt; -lt &lt;/span&gt;&lt;span class="variable"&gt;$faces&lt;/span&gt;&lt;span&gt;.Total; &lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt;++) {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;        &lt;span class="variable"&gt;$r&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="variable"&gt;$faces&lt;/span&gt;&lt;span&gt;[&lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt;].Rect  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;        &lt;span class="variable"&gt;$pt1&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.CvPoint(&lt;/span&gt;&lt;span class="variable"&gt;$r&lt;/span&gt;&lt;span&gt;.x, &lt;/span&gt;&lt;span class="variable"&gt;$r&lt;/span&gt;&lt;span&gt;.y)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;        &lt;span class="variable"&gt;$pt2&lt;/span&gt;&lt;span&gt; = new-object OpenCvSharp.CvPoint((&lt;/span&gt;&lt;span class="variable"&gt;$r&lt;/span&gt;&lt;span&gt;.x + &lt;/span&gt;&lt;span class="variable"&gt;$r&lt;/span&gt;&lt;span&gt;.Width),(&lt;/span&gt;&lt;span class="variable"&gt;$r&lt;/span&gt;&lt;span&gt;.y + &lt;/span&gt;&lt;span class="variable"&gt;$r&lt;/span&gt;&lt;span&gt;.Height ))  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;        &lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;.Rectangle(&lt;/span&gt;&lt;span class="variable"&gt;$pt1&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$pt2&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$color&lt;/span&gt;&lt;span&gt;,　3, 8, 0)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    }  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="comment"&gt;# 丸で囲む&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;#   for ($i = 0; $i -lt $faces.Total; $i++) {&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="comment"&gt;#       $r = $faces[$i].Rect&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;#       $X = [OpenCvSharp.Cv]::Round(($r.X + $r.Width * 0.5) * $Scale)&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="comment"&gt;#      $Y = [OpenCvSharp.Cv]::Round(($r.Y + $r.Height * 0.5) * $Scale)&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;#       $center = New-Object OpenCvSharp.CvPoint($X, $Y)&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="comment"&gt;#       $radius = [OpenCvSharp.Cv]::Round(($r.Width + $r.Height) * 0.25 * $Scale)&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;#       $iplImage.Circle($center, $radius, $color, 3, [OpenCvSharp.LineType]::AntiAlias, 0)&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="comment"&gt;#   }&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="comment"&gt;# ウィンドウに表示&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="variable"&gt;$window&lt;/span&gt;&lt;span&gt;.Image = &lt;/span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;}  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$srcIplImage&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$dstIplImage&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$window&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$camera&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-8994664654354633729?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/8994664654354633729/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=8994664654354633729' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/8994664654354633729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/8994664654354633729'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2009/10/powershell_29.html' title='PowerShellで動画の顔検出をしてみる'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-6366547508655962528</id><published>2009-10-27T22:47:00.000+09:00</published><updated>2009-10-27T22:50:00.628+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenCV'/><title type='text'>PowerShellで画像のRGBを調べてみる</title><content type='html'>&lt;div&gt;OpenCVSharpを使用して画像のRGBを調べてみる。&lt;/div&gt;&lt;div&gt;下のコードは読み込んだ画像の1ピクセル？づつのRGB情報を順番に出力していくもの。&lt;/div&gt;&lt;!-- Stylesheet link --&gt;&lt;link href="http://www.thecomplex.plus.com/styles/SyntaxHighlighter.css" rel="stylesheet" type="text/css"&gt;&lt;!-- Code --&gt;&lt;div class="dp-highlighter" id="hlDiv"&gt;&lt;ol start="1" class="dp-rb"&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span&gt;[void][System.Reflection.Assembly]::LoadFrom((&lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; OpenCvSharp.dll))  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt; = [OpenCvSharp.Cv]::LoadImage((&lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="string"&gt;"foo1.jpg"&lt;/span&gt;&lt;span&gt;))      &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="keyword"&gt;for&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span class="variable"&gt;$x&lt;/span&gt;&lt;span&gt; = 0; &lt;/span&gt;&lt;span class="variable"&gt;$x&lt;/span&gt;&lt;span&gt; -lt &lt;/span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;.Width; &lt;/span&gt;&lt;span class="variable"&gt;$x&lt;/span&gt;&lt;span&gt;++) {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="keyword"&gt;for&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span class="variable"&gt;$y&lt;/span&gt;&lt;span&gt; = 0; &lt;/span&gt;&lt;span class="variable"&gt;$y&lt;/span&gt;&lt;span&gt; -lt &lt;/span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;.Height; &lt;/span&gt;&lt;span class="variable"&gt;$y&lt;/span&gt;&lt;span&gt;++) {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;        &lt;span class="variable"&gt;$cvColor&lt;/span&gt;&lt;span&gt; = [OpenCvSharp.CvColor]&lt;/span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;.Get2D(&lt;/span&gt;&lt;span class="variable"&gt;$y&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$x&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;        &lt;span class="variable"&gt;$line&lt;/span&gt;&lt;span&gt; = [String]::Format(&lt;/span&gt;&lt;span class="string"&gt;"x = {0:000}, y = {1:000} : R = {2:000}, G = {3:000}, B = {4:000}"&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$x&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$y&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$cvColor&lt;/span&gt;&lt;span&gt;.R, &lt;/span&gt;&lt;span class="variable"&gt;$cvColor&lt;/span&gt;&lt;span&gt;.G, &lt;/span&gt;&lt;span class="variable"&gt;$cvColor&lt;/span&gt;&lt;span&gt;.B)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;        &lt;span class="builtin"&gt;Write-Host&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$line&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    }  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;}  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-6366547508655962528?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/6366547508655962528/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=6366547508655962528' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/6366547508655962528'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/6366547508655962528'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2009/10/powershellrgb.html' title='PowerShellで画像のRGBを調べてみる'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-4943978601450910354</id><published>2009-10-26T20:58:00.003+09:00</published><updated>2009-10-26T21:39:50.835+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenCV'/><title type='text'>PowerShellで静止画の顔検出をしてみる</title><content type='html'>&lt;div&gt;OpenCvSharpを使用して、画像から顔を検出してみる。&lt;/div&gt;&lt;div&gt;顔があったらその周りを赤色の四角い枠で囲む。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;顔検出には数千枚の画像ファイルから機械学習を行って、人間の顔とは？ってのを修めたデータが必要らしい…&lt;/div&gt;&lt;div&gt;でも、それをやるには時間がかかりすぎるので、Sampleに入っている学習済みのデータ「haarcascade_frontalface_alt.xml」を使用させてもらう。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;利用させてもらっておいてどうかとは思うが、試したデータでは今一だった。&lt;/div&gt;&lt;div&gt;どうも余計なものまで顔と認識して検出してくる。もちろん、顔も検出してくれるからいいんだけどね。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;いつものDLLと「haarcascade_frontalface_alt.xml」を同じフォルダーにコピーして、検出した元画像を「foo.jpg」として下のコードを実行する。&lt;/div&gt;&lt;!-- Stylesheet link --&gt;&lt;link href="http://www.thecomplex.plus.com/styles/SyntaxHighlighter.css" rel="stylesheet" type="text/css"&gt;&lt;!-- Code --&gt;&lt;div class="dp-highlighter" id="hlDiv"&gt;&lt;ol start="1" class="dp-rb"&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span&gt;[void][System.Reflection.Assembly]::LoadFrom((&lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; OpenCvSharp.dll))  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;#　元データ&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt; = [OpenCvSharp.Cv]::LoadImage((&lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="string"&gt;"foo.jpg"&lt;/span&gt;&lt;span&gt;))  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$color&lt;/span&gt;&lt;span&gt; = [OpenCvSharp.CvColor]::Red  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$scale&lt;/span&gt;&lt;span&gt; = 1.04;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$scaleFactor&lt;/span&gt;&lt;span&gt; = 1.139;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$minNeighbors&lt;/span&gt;&lt;span&gt; = 2;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$srcWidth&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;.Width  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$srcHeight&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;.Height  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$srcSize&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.CvSize([int]&lt;/span&gt;&lt;span class="variable"&gt;$srcWidth&lt;/span&gt;&lt;span&gt;, [int]&lt;/span&gt;&lt;span class="variable"&gt;$srcHeight&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$srcIplImage&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.IplImage( &lt;/span&gt;&lt;span class="variable"&gt;$srcSize&lt;/span&gt;&lt;span&gt;, [OpenCvSharp.BitDepth]::U8, 1)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$dstWidth&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;.Width / &lt;/span&gt;&lt;span class="variable"&gt;$scale&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$dstHeight&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;.Height / &lt;/span&gt;&lt;span class="variable"&gt;$scale&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$dstSize&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.CvSize([int]&lt;/span&gt;&lt;span class="variable"&gt;$dstWidth&lt;/span&gt;&lt;span&gt;, [int]&lt;/span&gt;&lt;span class="variable"&gt;$dstHeight&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$dst1IplImage&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.IplImage( &lt;/span&gt;&lt;span class="variable"&gt;$dstSize&lt;/span&gt;&lt;span&gt;, [OpenCvSharp.BitDepth]::U8, 1)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;#　顔検出用の画像の生成&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;[OpenCvSharp.Cv]::CvtColor(&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span class="variable"&gt;$srcIplImage&lt;/span&gt;&lt;span&gt;, [OpenCvSharp.ColorConversion]::BgraToGray)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;[OpenCvSharp.Cv]::Resize(&lt;span class="variable"&gt;$srcIplImage&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$dst1IplImage&lt;/span&gt;&lt;span&gt;, [OpenCvSharp.Interpolation]::Linear)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;[OpenCvSharp.Cv]::EqualizeHist(&lt;span class="variable"&gt;$dst1IplImage&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span class="variable"&gt;$dst1IplImage&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$cascade&lt;/span&gt;&lt;span&gt; = [OpenCvSharp.CvHaarClassifierCascade]::FromFile((&lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="string"&gt;"haarcascade_frontalface_alt.xml"&lt;/span&gt;&lt;span&gt;))   &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$storage&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.CvMemStorage  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$storage&lt;/span&gt;&lt;span&gt;.Clear()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="comment"&gt;#　顔の検出&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$faces&lt;/span&gt;&lt;span&gt; = [OpenCvSharp.Cv]::HaarDetectObjects(&lt;/span&gt;&lt;span class="variable"&gt;$dst1IplImage&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$cascade&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$storage&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$scaleFactor&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$minNeighbors&lt;/span&gt;&lt;span&gt;, 0, (&lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.CvSize(30, 30)));  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;# 検出された全ての顔位置に四角い枠で囲む&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="keyword"&gt;for&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt; = 0; &lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt; -lt &lt;/span&gt;&lt;span class="variable"&gt;$faces&lt;/span&gt;&lt;span&gt;.Total; &lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt;++) {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="variable"&gt;$r&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="variable"&gt;$faces&lt;/span&gt;&lt;span&gt;[&lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt;].Rect  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="variable"&gt;$pt1&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.CvPoint(&lt;/span&gt;&lt;span class="variable"&gt;$r&lt;/span&gt;&lt;span&gt;.x, &lt;/span&gt;&lt;span class="variable"&gt;$r&lt;/span&gt;&lt;span&gt;.y)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="variable"&gt;$pt2&lt;/span&gt;&lt;span&gt; = new-object OpenCvSharp.CvPoint((&lt;/span&gt;&lt;span class="variable"&gt;$r&lt;/span&gt;&lt;span&gt;.x + &lt;/span&gt;&lt;span class="variable"&gt;$r&lt;/span&gt;&lt;span&gt;.Width),(&lt;/span&gt;&lt;span class="variable"&gt;$r&lt;/span&gt;&lt;span&gt;.y + &lt;/span&gt;&lt;span class="variable"&gt;$r&lt;/span&gt;&lt;span&gt;.Height ))  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;.Rectangle(&lt;/span&gt;&lt;span class="variable"&gt;$pt1&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$pt2&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$color&lt;/span&gt;&lt;span&gt;,　3, 8, 0)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;}  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;      &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;# 丸で囲いたい場合はこっち&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="comment"&gt;#for ($i = 0; $i -lt $faces.Total; $i++) {&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;#    $r = $faces[$i].Rect&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="comment"&gt;#   $X = [OpenCvSharp.Cv]::Round(($r.X + $r.Width * 0.5) * $Scale)&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;#    $Y = [OpenCvSharp.Cv]::Round(($r.Y + $r.Height * 0.5) * $Scale)&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="comment"&gt;#   $center = New-Object OpenCvSharp.CvPoint($X, $Y)&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;#   $radius = [OpenCvSharp.Cv]::Round(($r.Width + $r.Height) * 0.25 * $Scale)&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="comment"&gt;#   $iplImage.Circle($center, $radius, $color, 3, [OpenCvSharp.LineType]::AntiAlias, 0)&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;#}&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;#　赤枠で囲ったデータを保存する&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;.SaveImage((&lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="string"&gt;"bar.jpg"&lt;/span&gt;&lt;span&gt;))  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$srcIplImage&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$dst1IplImage&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-4943978601450910354?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/4943978601450910354/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=4943978601450910354' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/4943978601450910354'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/4943978601450910354'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2009/10/powershell_26.html' title='PowerShellで静止画の顔検出をしてみる'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-2154468530039743703</id><published>2009-10-19T21:38:00.002+09:00</published><updated>2009-10-19T21:45:59.415+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenCV'/><title type='text'>PowerShellで画像を白黒に変換する</title><content type='html'>&lt;div&gt;OpenCVSharpを使って画像を白黒（２値化）する。&lt;/div&gt;&lt;div&gt;最初にグレースケールにしておいて、しきい値以下だったら白色、以上だったら黒色の二色の画像にする。&lt;/div&gt;&lt;div&gt;少しぼかした方が、白い部分と黒い部分が分かれるのでいいかもしれない。&lt;/div&gt;&lt;div&gt;ぼかさないと、ノイズが多い感じになる。&lt;/div&gt;&lt;div&gt;サンプルはぼかし無しで、ぼかしの部分はコメントアウトしてある。&lt;/div&gt;&lt;!-- Stylesheet link --&gt;&lt;link href="http://www.thecomplex.plus.com/styles/SyntaxHighlighter.css" rel="stylesheet" type="text/css"&gt;&lt;!-- Code --&gt;&lt;div class="dp-highlighter" id="hlDiv"&gt;&lt;ol start="1" class="dp-rb"&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span&gt;[void][System.Reflection.Assembly]::LoadFrom((&lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; OpenCvSharp.dll))  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;#　グレースケールで読み込む&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$srcIplImage&lt;/span&gt;&lt;span&gt; = [OpenCvSharp.Cv]::LoadImage( (&lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="string"&gt;"foo.jpg"&lt;/span&gt;&lt;span&gt;), [OpenCvSharp.LoadMode]::GrayScale)    &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="comment"&gt;#　ソース画像と同じサイズのグレースケールで初期化する&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$dstIplImage&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.IplImage( &lt;/span&gt;&lt;span class="variable"&gt;$srcIplImage&lt;/span&gt;&lt;span&gt;.Size, [OpenCvSharp.BitDepth]::U8, 1)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;#　画像をすこしぼかすした方がいいかも&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="comment"&gt;#$smooth = 5&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;#$srcIplImage.Smooth($srcIplImage, [OpenCvSharp.SmoothType]::Gaussian, $smooth)&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$threshold&lt;/span&gt;&lt;span&gt; = 128 &lt;/span&gt;&lt;span class="comment"&gt;#　白色か黒色かのしきい値&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$srcIplImage&lt;/span&gt;&lt;span&gt;.Threshold(&lt;/span&gt;&lt;span class="variable"&gt;$dstIplImage&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$threshold&lt;/span&gt;&lt;span&gt;, 255, [OpenCvSharp.ThresholdType]::Binary)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$dstIplImage&lt;/span&gt;&lt;span&gt;.SaveImage((&lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="string"&gt;"bar.jpg"&lt;/span&gt;&lt;span&gt;))  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$srcIplImage&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$dstIplImage&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-2154468530039743703?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/2154468530039743703/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=2154468530039743703' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/2154468530039743703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/2154468530039743703'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2009/10/powershell_19.html' title='PowerShellで画像を白黒に変換する'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-8746306392466087766</id><published>2009-10-18T22:38:00.001+09:00</published><updated>2009-10-18T22:42:43.789+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenCV'/><title type='text'>PowerShellで画像をグレースケールに変換する</title><content type='html'>&lt;div&gt;OpenCVSharpを使って画像をグレースケールにする。&lt;/div&gt;&lt;div&gt;グレースケールにする方法は下記の二つ。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;①画像を読み込む時にグレースケールで読み込む方法。&lt;/div&gt;&lt;div&gt;②OpenCvSharp.IplImageオブジェクトを減色する方法。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;①の方法だと一度ファイルに保存する必要があるので、Webカメラでキャプチャーしながらの解析には向かない。その時は、②を使えばいい。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;まずは、①のコード&lt;/div&gt;&lt;!-- Stylesheet link --&gt;&lt;link href="http://www.thecomplex.plus.com/styles/SyntaxHighlighter.css" rel="stylesheet" type="text/css"&gt;&lt;!-- Code --&gt;&lt;div class="dp-highlighter" id="hlDiv"&gt;&lt;ol start="1" class="dp-rb"&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span&gt;[void][System.Reflection.Assembly]::LoadFrom((&lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; OpenCvSharp.dll))  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;#グレースケールで読み込む&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt; = [OpenCvSharp.Cv]::LoadImage((&lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="string"&gt;"foo.jpg"&lt;/span&gt;&lt;span&gt;), [OpenCvSharp.LoadMode]::GrayScale)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;.SaveImage((&lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="string"&gt;"bar.jpg"&lt;/span&gt;&lt;span&gt;))  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;続いて、②のコード&lt;br /&gt;&lt;div class="dp-highlighter" id="hlDiv"&gt;&lt;div class="bar"&gt;&lt;/div&gt;&lt;ol start="1" class="dp-rb"&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span&gt;[void][System.Reflection.Assembly]::LoadFrom(( &lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; OpenCvSharp.dll))  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;#グレースケールに変換&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$srcIplImage&lt;/span&gt;&lt;span&gt; = [OpenCvSharp.Cv]::LoadImage((&lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="string"&gt;"foo.jpg"&lt;/span&gt;&lt;span&gt;))  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$dstIplImage&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.IplImage( &lt;/span&gt;&lt;span class="variable"&gt;$srcIplImage&lt;/span&gt;&lt;span&gt;.Size, [OpenCvSharp.BitDepth]::U8, 1)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;[OpenCvSharp.Cv]::CvtColor(&lt;span class="variable"&gt;$srcIplImage&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span class="variable"&gt;$dstIplImage&lt;/span&gt;&lt;span&gt;, [OpenCvSharp.ColorConversion]::BgraToGray)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$dstIplImage&lt;/span&gt;&lt;span&gt;.SaveImage((&lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="string"&gt;"bar.jpg"&lt;/span&gt;&lt;span&gt;))  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$srcIplImage&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$dstIplImage&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-8746306392466087766?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/8746306392466087766/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=8746306392466087766' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/8746306392466087766'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/8746306392466087766'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2009/10/powershell_18.html' title='PowerShellで画像をグレースケールに変換する'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-5445854097181126643</id><published>2009-10-17T21:07:00.001+09:00</published><updated>2009-10-17T21:16:46.593+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenCV'/><title type='text'>PowerShellで画像をぼかす</title><content type='html'>&lt;div&gt;OpenCVSharpを使って画像をぼかす（平滑化する）。&lt;/div&gt;&lt;div&gt;たぶん、一部だけぼかすこともできるとは思うけど、やり方がわからないので、まずは全体をぼかす。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ぼかし方は五種類、OpenCvSharp.SmoothTypeで&lt;span class="Apple-style-span" style="font-family: Verdana; font-size: 11px; "&gt;&lt;span class="Apple-style-span" style="font-family: Georgia, serif; font-size: 16px; "&gt;定義されている。&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;・　BlurNoScale&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;・　Blur&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;・　Gaussian&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;・　Median&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;・　Bilateral&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;そのうちの一つ「Bilateral」は例がでて使えなかった。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;以下、コード&lt;/div&gt;&lt;!-- Stylesheet link --&gt;&lt;link href="http://www.thecomplex.plus.com/styles/SyntaxHighlighter.css" rel="stylesheet" type="text/css"&gt;&lt;!-- Code --&gt;&lt;div class="dp-highlighter" id="hlDiv"&gt;&lt;ol start="1" class="dp-rb"&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span&gt;[void][System.Reflection.Assembly]::LoadFrom( ( &lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; OpenCvSharp.dll) )  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$smooth&lt;/span&gt;&lt;span&gt; = 5 &lt;/span&gt;&lt;span class="comment"&gt;#　ぼかし率？値が大きいほどぼかしが強い&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;#　強い光を当てたみたいな画像になった&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt; = [OpenCvSharp.Cv]::LoadImage( (&lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="string"&gt;"foo.jpg"&lt;/span&gt;&lt;span&gt;))      &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;.Smooth(&lt;/span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;, [OpenCvSharp.SmoothType]::BlurNoScale, &lt;/span&gt;&lt;span class="variable"&gt;$smooth&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;.SaveImage((&lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="string"&gt;"BlurNoScale.jpg"&lt;/span&gt;&lt;span&gt;))  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;#　全体的にぼゃ～って感じ&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt; = [OpenCvSharp.Cv]::LoadImage( (&lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="string"&gt;"foo.jpg"&lt;/span&gt;&lt;span&gt;))      &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;.Smooth(&lt;/span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;, [OpenCvSharp.SmoothType]::Blur, &lt;/span&gt;&lt;span class="variable"&gt;$smooth&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;.SaveImage((&lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="string"&gt;"Blur.jpg"&lt;/span&gt;&lt;span&gt;))  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;#　全体的にぼゃっとしてるけどBlurよりははっきり&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt; = [OpenCvSharp.Cv]::LoadImage( (&lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="string"&gt;"foo.jpg"&lt;/span&gt;&lt;span&gt;))      &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;.Smooth(&lt;/span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;, [OpenCvSharp.SmoothType]::Gaussian, &lt;/span&gt;&lt;span class="variable"&gt;$smooth&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;.SaveImage((&lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="string"&gt;"Gaussian.jpg"&lt;/span&gt;&lt;span&gt;))  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;#　油絵みたい&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt; = [OpenCvSharp.Cv]::LoadImage( (&lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="string"&gt;"foo.jpg"&lt;/span&gt;&lt;span&gt;))      &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;.Smooth(&lt;/span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;, [OpenCvSharp.SmoothType]::Median, &lt;/span&gt;&lt;span class="variable"&gt;$smooth&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;.SaveImage((&lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="string"&gt;"Median.jpg"&lt;/span&gt;&lt;span&gt;))  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;#ぼかし方（平滑化）をBilateralにすると例外が発生してうまくいかない&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="comment"&gt;#$iplImage = [OpenCvSharp.Cv]::LoadImage( (Join-Path $pwd "foo.jpg"))   &lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;#$iplImage.Smooth($iplImage, [OpenCvSharp.SmoothType]::Bilateral, $smooth)&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="comment"&gt;#$iplImage.SaveImage((Join-Path $pwd "Bilateral.jpg"))&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;#$iplImage.Dispose()&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-5445854097181126643?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/5445854097181126643/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=5445854097181126643' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/5445854097181126643'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/5445854097181126643'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2009/10/powershell_2721.html' title='PowerShellで画像をぼかす'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-5327767508015193870</id><published>2009-10-17T02:13:00.002+09:00</published><updated>2009-10-17T02:18:11.593+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenCV'/><title type='text'>PowerShellで画像を回転させる</title><content type='html'>&lt;div&gt;OpenCVSharpを使って画像を回転したり反転したりしてみる。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;OpenCvSharp.Cv.Flip()メソッドを使って、X軸かY軸か両軸で画像を反転させれる。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;以下、コード&lt;/div&gt;&lt;!-- Stylesheet link --&gt;&lt;link href="http://www.thecomplex.plus.com/styles/SyntaxHighlighter.css" rel="stylesheet" type="text/css"&gt;&lt;!-- Code --&gt;&lt;div class="dp-highlighter" id="hlDiv"&gt;&lt;ol start="1" class="dp-rb"&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span&gt;[void][System.Reflection.Assembly]::LoadFrom( ( &lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; OpenCvSharp.dll) )  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;#画像を左右を入れ替える&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt; = [OpenCvSharp.Cv]::LoadImage( (&lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="string"&gt;"foo.jpg"&lt;/span&gt;&lt;span&gt;)　)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;[OpenCvSharp.Cv]::Flip(&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;, [OpenCvSharp.FlipMode]::Y )  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;.SaveImage((&lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="string"&gt;"bar1.jpg"&lt;/span&gt;&lt;span&gt;))  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;#画像を180度回転させる&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt; = [OpenCvSharp.Cv]::LoadImage( (&lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="string"&gt;"foo.jpg"&lt;/span&gt;&lt;span&gt;)　)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;[OpenCvSharp.Cv]::Flip(&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;, [OpenCvSharp.FlipMode]::XY )  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;.SaveImage((&lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="string"&gt;"bar2.jpg"&lt;/span&gt;&lt;span&gt;))  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;#画像を左右を入れ替えて180度回転させる&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt; = [OpenCvSharp.Cv]::LoadImage( (&lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="string"&gt;"foo.jpg"&lt;/span&gt;&lt;span&gt;)　)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;[OpenCvSharp.Cv]::Flip(&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;, [OpenCvSharp.FlipMode]::X )  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;.SaveImage((&lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="string"&gt;"bar3.jpg"&lt;/span&gt;&lt;span&gt;))  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-5327767508015193870?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/5327767508015193870/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=5327767508015193870' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/5327767508015193870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/5327767508015193870'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2009/10/powershell_17.html' title='PowerShellで画像を回転させる'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-775771057063694145</id><published>2009-10-15T20:31:00.001+09:00</published><updated>2009-10-15T20:33:35.287+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenCV'/><title type='text'>PowerShellで動画を再生する</title><content type='html'>&lt;div&gt;前回保存した動画ファイルをOpenCVSharpを使って再生する。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;今回も下記の５個のDLLが必要になるので、同じフォルダにコピーしておく。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;・cv200.dll&lt;/div&gt;&lt;div&gt;・cxcore200.dll&lt;/div&gt;&lt;div&gt;・highgui200.dll&lt;/div&gt;&lt;div&gt;・opencv_ffmpeg200.dll&lt;/div&gt;&lt;div&gt;・OpenCvSharp.dll&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Webカメラの映像を表示するのとあまり違いはなくて、単に読み込む対象がWebカメラからファイルに変えるだけで再生を行うことができる。&lt;/div&gt;&lt;div&gt;では、実際のコード&lt;/div&gt;&lt;!-- Stylesheet link --&gt;&lt;link href="http://www.thecomplex.plus.com/styles/SyntaxHighlighter.css" rel="stylesheet" type="text/css"&gt;&lt;!-- Code --&gt;&lt;div class="dp-highlighter" id="hlDiv"&gt;&lt;ol start="1" class="dp-rb"&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span&gt;[void][System.Reflection.Assembly]::LoadFrom( ( &lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; OpenCvSharp.dll) )  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;#　同じフォルダにある「foo.avi」を読み込む&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$aviFile&lt;/span&gt;&lt;span&gt; = [OpenCvSharp.CvCapture]::FromFile( (&lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="string"&gt;"foo.avi"&lt;/span&gt;&lt;span&gt;) )  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$window&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.CvWindow(&lt;/span&gt;&lt;span class="string"&gt;"SamplePlayer"&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;#読み込んだファイルのフレーム数分だけ再生したら終了する&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;0..&lt;span class="variable"&gt;$aviFile&lt;/span&gt;&lt;span&gt;.FrameCount | % {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    [OpenCvSharp.CvWindow]::WaitKey(10)  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="variable"&gt;$window&lt;/span&gt;&lt;span&gt;.Image = &lt;/span&gt;&lt;span class="variable"&gt;$aviFile&lt;/span&gt;&lt;span&gt;.QueryFrame()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;}  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$window&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$aviFile&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-775771057063694145?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/775771057063694145/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=775771057063694145' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/775771057063694145'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/775771057063694145'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2009/10/powershell.html' title='PowerShellで動画を再生する'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-4094529127698264759</id><published>2009-10-14T21:12:00.002+09:00</published><updated>2009-10-14T21:17:57.006+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenCV'/><title type='text'>PowerShellでWebカメラの映像を保存する</title><content type='html'>&lt;div&gt;OpenCVSharpを使ってWebカメラの映像を動画ファイルで保存してみる。&lt;/div&gt;&lt;div&gt;動画の保存は、OpenCVSharpのサンプルで「VideoWriter.cs」というのがあるのでそれを参考にする。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;今回は、OpenCVSharpとサンプルに入っている下記の５個のDLLが必要になる。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;・cv200.dll&lt;/div&gt;&lt;div&gt;・cxcore200.dll&lt;/div&gt;&lt;div&gt;・highgui200.dll&lt;/div&gt;&lt;div&gt;・opencv_ffmpeg200.dll&lt;/div&gt;&lt;div&gt;・OpenCvSharp.dll&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;これらのDLLを同じフォルダにコピーしておく。&lt;/div&gt;&lt;div&gt;サンプルでは200フレーム分を保存している。&lt;/div&gt;&lt;div&gt;実際のコードは以下&lt;/div&gt;&lt;!-- Stylesheet link --&gt;&lt;link href="http://www.thecomplex.plus.com/styles/SyntaxHighlighter.css" rel="stylesheet" type="text/css"&gt;&lt;!-- Code --&gt;&lt;div class="dp-highlighter" id="hlDiv"&gt;&lt;ol start="1" class="dp-rb"&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span&gt;[void][System.Reflection.Assembly]::LoadFrom( ( &lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; OpenCvSharp.dll) )  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$camera&lt;/span&gt;&lt;span&gt; = [OpenCvSharp.CvCapture]::FromCamera(0)   &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$size&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.CvSize(&lt;/span&gt;&lt;span class="variable"&gt;$camera&lt;/span&gt;&lt;span&gt;.FrameWidth, &lt;/span&gt;&lt;span class="variable"&gt;$camera&lt;/span&gt;&lt;span&gt;.FrameHeight)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;#　「foo.avi」で保存する&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$videoWriter&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.CvVideoWriter(&lt;/span&gt;&lt;span class="string"&gt;"foo.avi"&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span class="string"&gt;"XVID"&lt;/span&gt;&lt;span&gt;, 15, &lt;/span&gt;&lt;span class="variable"&gt;$size&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$font&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.CvFont([OpenCvSharp.FontFace]::HersheyComplex, 0.7, 0.7)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$point&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.CvPoint(10,20)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$color&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.CvColor(0,255,100)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="comment"&gt;#　(1) 画面に表示しなくてよければ、必要ない&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$window&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.CvWindow(&lt;/span&gt;&lt;span class="string"&gt;"Capture"&lt;/span&gt;&lt;span&gt;, [OpenCvSharp.WindowMode]::AutoSize)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;#　200フレーム分キャプチャーする&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;1..200 | % {  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    [OpenCvSharp.CvWindow]::WaitKey(10)  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="variable"&gt;$frame&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="variable"&gt;$camera&lt;/span&gt;&lt;span&gt;.QueryFrame()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="variable"&gt;$str&lt;/span&gt;&lt;span&gt; = [String]::Format(&lt;/span&gt;&lt;span class="string"&gt;"{0}[frame]"&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;span class="variable"&gt;$_&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;      &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="comment"&gt;#　左上に緑色でフレーム数が表示される&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="variable"&gt;$frame&lt;/span&gt;&lt;span&gt;.PutText(&lt;/span&gt;&lt;span class="variable"&gt;$str&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$point&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$font&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$color&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="variable"&gt;$videoWriter&lt;/span&gt;&lt;span&gt;.WriteFrame(&lt;/span&gt;&lt;span class="variable"&gt;$frame&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;      &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="variable"&gt;$window&lt;/span&gt;&lt;span&gt;.ShowImage(&lt;/span&gt;&lt;span class="variable"&gt;$frame&lt;/span&gt;&lt;span&gt;) &lt;/span&gt;&lt;span class="comment"&gt;#　(1)&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;}  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$frame&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$window&lt;/span&gt;&lt;span&gt;.Dispose() &lt;/span&gt;&lt;span class="comment"&gt;#　(1)&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$videoWriter&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$camera&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-4094529127698264759?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/4094529127698264759/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=4094529127698264759' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/4094529127698264759'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/4094529127698264759'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2009/10/powershellweb_8773.html' title='PowerShellでWebカメラの映像を保存する'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-4103744723085102067</id><published>2009-10-14T01:09:00.003+09:00</published><updated>2009-10-14T01:16:44.564+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenCV'/><title type='text'>PowerShellからWebカメラを使って静止画をキャプチャーする</title><content type='html'>&lt;div&gt;OpenCVSharpを使って、WebカメラでJpeg形式の静止画を撮影する。&lt;/div&gt;&lt;div&gt;まずは、前回、前々回と同じようにDLLを同じフォルダに置いておく。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;今回は、コマンドラインから直接入力してもOK。&lt;/div&gt;&lt;div&gt;（.ps1ファイルにした方が楽だろうけど…）&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;動作としては、Webカメラの映像を取得して、20フレーム目を静止画として保存している。&lt;/div&gt;&lt;div&gt;ここでは、「foo.jpg」という名前で同じフォルダに保存している。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;実際のコードは以下&lt;!-- Stylesheet link --&gt;&lt;link href="http://www.thecomplex.plus.com/styles/SyntaxHighlighter.css" rel="stylesheet" type="text/css"&gt;&lt;!-- Code --&gt;&lt;br /&gt;&lt;div class="dp-highlighter" id="hlDiv"&gt;&lt;div class="bar"&gt;&lt;/div&gt;&lt;ol start="1" class="dp-rb"&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span&gt;[void][System.Reflection.Assembly]::LoadFrom( ( &lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; OpenCvSharp.dll) )  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;#　Webカメラを取得する。&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$camera&lt;/span&gt;&lt;span&gt; = [OpenCvSharp.CvCapture]::FromCamera(0)   &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="comment"&gt;# 撮影する静止画のサイズを指定する。&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;# デフォルトサイズ？でよければ、指定しなくてもいい。&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$camera&lt;/span&gt;&lt;span&gt;.FrameWidth = 640  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$camera&lt;/span&gt;&lt;span&gt;.FrameHeight = 480  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;#　起動して直ぐのは、真っ白だったり、暗かったりするから、20フレームくらい撮る。&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="comment"&gt;#　戻り値は　OpenCvSharp.IplImage型&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;1..20 | % { &lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="variable"&gt;$camera&lt;/span&gt;&lt;span&gt;.QueryFrame() }  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;# OpenCvSharp.IplImage型をSystem.Drawing.Bitmap型へ変換する&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$bmp&lt;/span&gt;&lt;span&gt; = [OpenCvSharp.BitmapConverter]::ToBitmap(&lt;/span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;#　Jpegで保存する。&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$bmp&lt;/span&gt;&lt;span&gt;.Save((&lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="string"&gt;"foo.jpg"&lt;/span&gt;&lt;span&gt;), [System.Drawing.Imaging.ImageFormat]::Jpeg)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$bmp&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$iplImage&lt;/span&gt;&lt;span&gt;.Dispose()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-4103744723085102067?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/4103744723085102067/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=4103744723085102067' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/4103744723085102067'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/4103744723085102067'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2009/10/powershellweb_14.html' title='PowerShellからWebカメラを使って静止画をキャプチャーする'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-5786772567090661502</id><published>2009-10-10T15:24:00.005+09:00</published><updated>2009-10-10T17:10:39.587+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenCV'/><title type='text'>PowerShellからWebカメラを使ってみる</title><content type='html'>&lt;div&gt;OpenCVSharpを使用して、Webカメラの映像を表示させてみる。&lt;/div&gt;&lt;div&gt;Sampleの中に「CaptureCamera.cs」っというのがあるので、それをPowerShellで書く。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;前回と同じように、同じフォルダにDLLを置いてから下のコードを実行する。&lt;/div&gt;&lt;div&gt;PowerShellで直接コードを入力しても動かない（理由がわからないけど…）ので、ファイルに保存してから実行する。&lt;/div&gt;&lt;div&gt;実行するとウィンドウにカメラの映像が表示される。終了する時は、右上の×をクリックしても終わらないので、アクティブな状態にしておいてキーボードの「q」を押すと終了できる。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;-- CaptureCamera.ps1 --&lt;/div&gt;&lt;!-- Stylesheet link --&gt;&lt;link href="http://www.thecomplex.plus.com/styles/SyntaxHighlighter.css" rel="stylesheet" type="text/css"&gt;&lt;!-- Code --&gt;&lt;div class="dp-highlighter" id="hlDiv"&gt;&lt;ol start="1" class="dp-rb"&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span&gt;[void][System.Reflection.Assembly]::LoadFrom( ( &lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; OpenCvSharp.dll) )  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$cap&lt;/span&gt;&lt;span&gt; = [OpenCvSharp.CvCapture]::FromCamera(0)   &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$w&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.CvWindow(&lt;/span&gt;&lt;span class="string"&gt;"SampleCapture"&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="keyword"&gt;while&lt;/span&gt;&lt;span&gt; ( [OpenCvSharp.CvWindow]::WaitKey(10) -lt 0 ) {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="variable"&gt;$w&lt;/span&gt;&lt;span&gt;.Image = &lt;/span&gt;&lt;span class="variable"&gt;$cap&lt;/span&gt;&lt;span&gt;.QueryFrame()  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;}  &lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-5786772567090661502?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/5786772567090661502/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=5786772567090661502' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/5786772567090661502'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/5786772567090661502'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2009/10/powershellweb.html' title='PowerShellからWebカメラを使ってみる'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-2226321287121691343</id><published>2009-10-09T22:58:00.004+09:00</published><updated>2009-10-10T15:30:33.266+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenCV'/><title type='text'>PowerShellからOpenCVSharpを使ってみる</title><content type='html'>&lt;span class="Apple-style-span"   style="font-family:monospace;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style=" white-space: pre-wrap;font-size:13px;"&gt;&lt;div&gt;PowerShellで画像処理なるものをやってみたいので、まずは&lt;a href="http://d.hatena.ne.jp/Schima/20090616/1245081217"&gt;ここ&lt;/a&gt;を参考にOpenCVSharpを使ってみる。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;なにはともあれ、DLLが必要なので&lt;a href="http://code.google.com/p/opencvsharp/"&gt;OpenCVSharp&lt;/a&gt;の&lt;a href="http://code.google.com/p/opencvsharp/downloads/list"&gt;ダウンロードページ&lt;/a&gt;から下の2つを落としてくる。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;・OpenCvSharp-Jp-2.0-20091007.zip&lt;/div&gt;&lt;div&gt;・Sample-2.0-20091007.zip&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;どちらも、展開して今回必要な4つのDLLを適当なフォルダにコピーする。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;[Sampleの方に入っているOpenCVのDLL]&lt;/div&gt;&lt;div&gt;・cv200.dll&lt;/div&gt;&lt;div&gt;・cxcore200.dll&lt;/div&gt;&lt;div&gt;・highgui200.dll&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;[OpenCVSharpの方に入っているDLL]&lt;/div&gt;&lt;div&gt;・OpenCvSharp.dll&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;コピーしたフォルダに移動して下のコードを実行する。&lt;/div&gt;&lt;div&gt;小さなウィンドウが表示されればOK。&lt;/div&gt;&lt;!-- Stylesheet link --&gt;&lt;link href="http://www.thecomplex.plus.com/styles/SyntaxHighlighter.css" rel="stylesheet" type="text/css"&gt;&lt;!-- Code --&gt;&lt;div class="dp-highlighter" id="hlDiv"&gt;&lt;ol start="1" class="dp-rb"&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span&gt;[void][System.Reflection.Assembly]::LoadFrom( ( &lt;/span&gt;&lt;span class="builtin"&gt;Join-Path&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$pwd&lt;/span&gt;&lt;span&gt; OpenCvSharp.dll) )  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$size&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt; OpenCvSharp.CvSize(128, 128)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$img&lt;/span&gt;&lt;span&gt; = [OpenCvSharp.Cv]::CreateImage(&lt;/span&gt;&lt;span class="variable"&gt;$size&lt;/span&gt;&lt;span&gt;, [OpenCvSharp.BitDepth]::U8, 1)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="keyword"&gt;for&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span class="variable"&gt;$y&lt;/span&gt;&lt;span&gt; = 0; &lt;/span&gt;&lt;span class="variable"&gt;$y&lt;/span&gt;&lt;span&gt; -lt &lt;/span&gt;&lt;span class="variable"&gt;$img&lt;/span&gt;&lt;span&gt;.Height; &lt;/span&gt;&lt;span class="variable"&gt;$y&lt;/span&gt;&lt;span&gt;++) {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="keyword"&gt;for&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span class="variable"&gt;$x&lt;/span&gt;&lt;span&gt; = 0; &lt;/span&gt;&lt;span class="variable"&gt;$x&lt;/span&gt;&lt;span&gt; -lt &lt;/span&gt;&lt;span class="variable"&gt;$img&lt;/span&gt;&lt;span&gt;.Width; &lt;/span&gt;&lt;span class="variable"&gt;$x&lt;/span&gt;&lt;span&gt;++) {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;        [OpenCvSharp.Cv]::Set2D(&lt;span class="variable"&gt;$img&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$y&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$x&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$x&lt;/span&gt;&lt;span&gt; + &lt;/span&gt;&lt;span class="variable"&gt;$y&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    }     &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;}  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;[OpenCvSharp.Cv]::NamedWindow(&lt;span class="string"&gt;"window"&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;[OpenCvSharp.Cv]::ShowImage(&lt;span class="string"&gt;"window"&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$img&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;[OpenCvSharp.Cv]::WaitKey()  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;[OpenCvSharp.Cv]::DestroyWindow(&lt;span class="string"&gt;"window"&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;[OpenCvSharp.Cv]::ReleaseImage(&lt;span class="variable"&gt;$img&lt;/span&gt;&lt;span&gt;)  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-2226321287121691343?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/2226321287121691343/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=2226321287121691343' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/2226321287121691343'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/2226321287121691343'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2009/10/powershellopencvsharp.html' title='PowerShellからOpenCVSharpを使ってみる'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-6022574654460989251</id><published>2009-10-01T23:03:00.000+09:00</published><updated>2009-10-01T23:04:22.047+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><title type='text'>PowerShellで8.3形式の短いファイル名を取得する</title><content type='html'>短いファイル名を取得するには、kernel32.dllのGetShortPathNameメソッドを呼べばわかるんだけど、それをPowerShellからやると面倒そうなので、Scripting.FileSystemObjectを利用してみる。&lt;br /&gt;&lt;br /&gt;ここでは、Excelの実行ファイルを取得してみる。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&gt; $fso = New-Object -comObject Scripting.FileSystemObject&lt;br /&gt;&gt; $fso.GetFile("C:\Program Files\Microsoft Office\Office12\EXCEL.EXE")&lt;br /&gt;&lt;br /&gt;Path             : C:\Program Files\Microsoft Office\Office12\EXCEL.EXE&lt;br /&gt;Name             : EXCEL.EXE&lt;br /&gt;ShortPath        : C:\PROGRA~1\MICROS~2\Office12\EXCEL.EXE&lt;br /&gt;ShortName        : EXCEL.EXE&lt;br /&gt;Drive            : System.__ComObject&lt;br /&gt;ParentFolder     : System.__ComObject&lt;br /&gt;Attributes       : 32&lt;br /&gt;DateCreated      : 2009/05/04 8:40:04&lt;br /&gt;DateLastModified : 2009/05/04 8:40:04&lt;br /&gt;DateLastAccessed : 2009/06/11 7:18:21&lt;br /&gt;Size             : 18333536&lt;br /&gt;Type             : アプリケーション&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&gt; ($fso.GetFile("C:\Program Files\Microsoft Office\Office12\EXCEL.EXE")).ShortPath&lt;br /&gt;&lt;br /&gt;C:\PROGRA~1\MICROS~2\Office12\EXCEL.EXE&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;短いファイル名を取得したかった理由はレジストリに設定するためだったのでこれで十分いけそうだ。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-6022574654460989251?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/6022574654460989251/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=6022574654460989251' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/6022574654460989251'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/6022574654460989251'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2009/10/powershell83.html' title='PowerShellで8.3形式の短いファイル名を取得する'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-8991012105684781958</id><published>2009-10-01T22:40:00.002+09:00</published><updated>2009-10-01T22:41:48.590+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VBA'/><title type='text'>VBScriptでネットワークドライブを使う</title><content type='html'>ドライブ名を”なし”で使いたかったので、MapNetworkDriveメソッドの最初の引数は空にする。&lt;br /&gt;&lt;br /&gt;Dim objNet&lt;br /&gt;Set objNet = WScript.CreateObject("WScript.Network")&lt;br /&gt;objNet.MapNetworkDrive "", "\\ServerName", True, "UserName", "Password"&lt;br /&gt;&lt;br /&gt;切断するのはRemoveNetworkDriveメソッドで行う。&lt;br /&gt;&lt;br /&gt;objNet.RemoveNetworkDrive "\\ServerName", True, True&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-8991012105684781958?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/8991012105684781958/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=8991012105684781958' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/8991012105684781958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/8991012105684781958'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2009/10/vbscript.html' title='VBScriptでネットワークドライブを使う'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-940979505094231213</id><published>2009-06-24T21:17:00.003+09:00</published><updated>2009-06-24T21:19:47.536+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><title type='text'>PowerShellで漢字をカタカナに変換する</title><content type='html'>&lt;div&gt;漢字をひらがなやカタカナに変換したくなったので調べてみた。&lt;/div&gt;&lt;div&gt;簡単に変換するにはExcelのルビを振る関数でPhonetic関数を使うのが簡単そうだ。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ただし、「あぁアｱＡａAa1」を変換すると全部全角の「アァアアＡａＡａ１」になってしまうので注意。&lt;/div&gt;&lt;br /&gt;--- ConvertTo-KanjiFromKatakana.ps1 ---&lt;br /&gt;&lt;div class="dp-highlighter" id="hlDiv"&gt;&lt;div class="bar"&gt;&lt;/div&gt;&lt;ol start="1" class="dp-rb"&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="keyword"&gt;function&lt;/span&gt;&lt;span&gt;&amp;nbsp;global:ConvertTo-KanjiFromKatakana([string]&lt;/span&gt;&lt;span class="variable"&gt;$word&lt;/span&gt;&lt;span&gt;)&amp;nbsp;{&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="variable"&gt;$excel&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt;&amp;nbsp;-comObject&amp;nbsp;Excel.Application&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="variable"&gt;$result&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class="variable"&gt;$excel&lt;/span&gt;&lt;span&gt;.GetPhonetic(&lt;/span&gt;&lt;span class="variable"&gt;$word&lt;/span&gt;&lt;span&gt;)&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="comment"&gt;#Excel&amp;nbsp;COM&amp;nbsp;Objectを解放&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[void][System.Runtime.InteropServices.Marshal]::ReleaseComObject(&lt;span class="variable"&gt;$excel&lt;/span&gt;&lt;span&gt;)&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="keyword"&gt;return&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="variable"&gt;$result&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;}&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-940979505094231213?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/940979505094231213/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=940979505094231213' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/940979505094231213'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/940979505094231213'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2009/06/powershell.html' title='PowerShellで漢字をカタカナに変換する'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-4957806864108776315</id><published>2009-06-20T02:23:00.004+09:00</published><updated>2009-06-24T21:21:55.189+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>C#でエクスプローラーで表示されるファイルの並び順と同じにソートしてみる</title><content type='html'>必要があったのでメモ。&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;IComparerを使ってArray.Sort()でソートする。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;使い方は、&lt;/div&gt;&lt;br /&gt;&lt;pre name="code" class="c#:nogutter:nocontrols"&gt;&lt;br /&gt;string[] list = { "01.txt", "1.txt", "02.txt" }&lt;br /&gt;Array.Sort(list, new ExplorerSortComparer());&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;こんな感じ&lt;br /&gt;--- ExplorerSortComparer Class ---&lt;br /&gt;&lt;pre name="code" class="c#"&gt;&lt;br /&gt;public class ExplorerSortComparer : IComparer {&lt;br /&gt;    [DllImport("shlwapi.dll", CharSet = CharSet.Unicode, ExactSpelling = true)]&lt;br /&gt;    public static extern int StrCmpLogicalW(string str1, string str2);&lt;br /&gt;&lt;br /&gt;    public int Compare(object obj1, object obj2) {&lt;br /&gt;        return StrCmpLogicalW((string)obj1, (string)obj2));&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-4957806864108776315?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/4957806864108776315/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=4957806864108776315' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/4957806864108776315'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/4957806864108776315'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2009/06/c.html' title='C#でエクスプローラーで表示されるファイルの並び順と同じにソートしてみる'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-5973268721191145091</id><published>2009-06-20T01:27:00.009+09:00</published><updated>2009-06-22T22:24:18.229+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VBA'/><title type='text'>VBScriptでゴミ箱のファイルを削除してみる</title><content type='html'>PowerShellではできたので、VBScriptで指定日以前にごみ箱に捨てたファイルを削除してみる。&lt;div&gt;PowerShellがもっと流行れば、VBScriptから逃げられるんだけど…その日はまだ遠そうだ。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;※ごみ箱の中のフォルダを消そうとすると「実行時エラー：・・・」となるので一度Tempフォルダに移動してからcmdのrmdirで消している。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;３日前に削除したファイルをけすなら、ｃｍｄなどから&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&gt; CScript /nologo  DeleteGarbabeFiles.vbs /Date:3&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;とする。&lt;/div&gt;&lt;div&gt;/Date:3　をつけなければ、一週間前までのを削除する。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;--- DeleteGarbabeFiles.vbs ---&lt;br /&gt;&lt;pre name="code" class="vb"&gt;&lt;br /&gt;If WScript.Arguments.Named("Date") = "" Then&lt;br /&gt;  nDays = 6&lt;br /&gt;Else&lt;br /&gt;  nDays = Int(WScript.Arguments.Named("Date"))&lt;br /&gt;End If&lt;br /&gt;&lt;br /&gt;Set objFSO = CreateObject("Scripting.FileSystemObject")&lt;br /&gt;Set objShell = CreateObject("Shell.Application")&lt;br /&gt;Set WshShell = CreateObject("WScript.Shell")&lt;br /&gt;Set trash = objShell.NameSpace(10)&lt;br /&gt;&lt;br /&gt;For Each item in trash.Items()&lt;br /&gt;  If Int(Now() - CDate(trash.GetDetailsOf(item, 2))) &amp;gt;= nDays Then&lt;br /&gt;    If objFSO.FileExists(item.Path) Then&lt;br /&gt;      objFSO.DeleteFile item.Path&lt;br /&gt;    ElseIf objFSO.FolderExists(item.Path) Then&lt;br /&gt;      dustFolderPath = objFSO.GetSpecialFolder(2).Path &amp; "_TempDeleteFolder"&lt;br /&gt;      objFSO.MoveFolder item.Path, dustFolderPath&lt;br /&gt;      delCommand = "cmd.exe /C rmdir /S /Q " &amp; """" &amp; dustFolderPath &amp; """" &lt;br /&gt;      WshShell.Run delCommand, 0, true&lt;br /&gt;    End If&lt;br /&gt;  End If&lt;br /&gt;Next&lt;br /&gt;&lt;br /&gt;Set objFSO = Nothing&lt;br /&gt;Set objShell = Nothing&lt;br /&gt;Set WshShell = Nothing&lt;br /&gt;Set trash = Nothing&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-5973268721191145091?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/5973268721191145091/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=5973268721191145091' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/5973268721191145091'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/5973268721191145091'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2009/06/vbscript.html' title='VBScriptでゴミ箱のファイルを削除してみる'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-946940197590397320</id><published>2009-06-16T21:30:00.002+09:00</published><updated>2009-06-16T23:41:47.905+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><title type='text'>PowerShellから新しいウィンドウのPowerShellを開く</title><content type='html'>&lt;div&gt;PowerShellから新しいウィンドウのPowerShellを開くには、WScript.Shellを使う。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&gt; $WShell = New-Object -comObject WScript.Shell&lt;/div&gt;&lt;div&gt;&gt; $posh = "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe"&lt;/div&gt;&lt;div&gt;&gt; [void]$WShell.Run($posh , 1)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;これを「New-PowerShellWindow.ps1」とかにしてパスの通ったところに置いておけば、キーボードだけでやりたい人には使えるかもしれない。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-946940197590397320?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/946940197590397320/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=946940197590397320' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/946940197590397320'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/946940197590397320'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2009/06/powershellpowershell.html' title='PowerShellから新しいウィンドウのPowerShellを開く'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-2960085425620966486</id><published>2009-04-27T20:39:00.012+09:00</published><updated>2009-06-24T21:24:51.754+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><title type='text'>PowerShellで半角カタカナを全角カタカナに変換してみる</title><content type='html'>&lt;span class="Apple-style-span"   style="  white-space: pre-wrap; font-family:-webkit-monospace;font-size:13px;"&gt;必要になったので…&lt;div&gt;&lt;/div&gt;使い方:&lt;br /&gt;&gt; ConvertTo-HankakukatakanaFromZenkakukatakana "ﾃﾞｼﾞﾀﾙﾊｲﾋﾞｼﾞｮﾝﾃﾚﾋﾞ" &lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;--- ConvertTo-HankakukatakanaFromZenkakukatakana.ps1 ---&lt;/div&gt;&lt;br /&gt;&lt;div class="dp-highlighter" id="hlDiv"&gt;&lt;div class="bar"&gt;&lt;/div&gt;&lt;ol start="1" class="dp-rb"&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="keyword"&gt;function&lt;/span&gt;&lt;span&gt; ConvertTo-HankakukatakanaFromZenkakukatakana([string]&lt;/span&gt;&lt;span class="variable"&gt;$value&lt;/span&gt;&lt;span&gt;) {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="variable"&gt;$zenkakukatakana&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="string"&gt;"アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲン゛゜ァィゥェォャュョッ"&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="variable"&gt;$hanakakukatakana&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="string"&gt;"ｱｲｳｴｵｶｷｸｹｺｻｼｽｾｿﾀﾁﾂﾃﾄﾅﾆﾇﾈﾉﾊﾋﾌﾍﾎﾏﾐﾑﾒﾓﾔﾕﾖﾗﾘﾙﾚﾛﾜｦﾝﾞﾟｧｨｩｪｫｬｭｮｯ"&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="variable"&gt;$dakutenZenkakukatakana&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="string"&gt;"ガギグゲゴザジズゼゾダヂヅデドバビブベボ"&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="variable"&gt;$dakutenHankakukatakana&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="string"&gt;"ｶｷｸｹｺｻｼｽｾｿﾀﾁﾂﾃﾄﾊﾋﾌﾍﾎ"&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="variable"&gt;$handakutenZenkakukatakana&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="string"&gt;"パピプペポ"&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="variable"&gt;$handakutenHankakukatakana&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="string"&gt;"ﾊﾋﾌﾍﾎ"&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="keyword"&gt;for&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt; = 0; &lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt; -lt &lt;/span&gt;&lt;span class="variable"&gt;$dakutenZenkakukatakana&lt;/span&gt;&lt;span&gt;.Length;&lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt;++) {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;        &lt;span class="variable"&gt;$value&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="variable"&gt;$value&lt;/span&gt;&lt;span&gt;.Replace(&lt;/span&gt;&lt;span class="variable"&gt;$dakutenHankakukatakana&lt;/span&gt;&lt;span&gt;[&lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt;] + &lt;/span&gt;&lt;span class="string"&gt;"ﾞ"&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$dakutenZenkakukatakana&lt;/span&gt;&lt;span&gt;[&lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt;])  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    }  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="keyword"&gt;for&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt; = 0; &lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt; -lt &lt;/span&gt;&lt;span class="variable"&gt;$handakutenZenkakukatakana&lt;/span&gt;&lt;span&gt;.Length; &lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt;++) {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;        &lt;span class="variable"&gt;$value&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="variable"&gt;$value&lt;/span&gt;&lt;span&gt;.Replace(&lt;/span&gt;&lt;span class="variable"&gt;$handakutenHankakukatakana&lt;/span&gt;&lt;span&gt;[&lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt;] + &lt;/span&gt;&lt;span class="string"&gt;"ﾟ"&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span class="variable"&gt;$handakutenZenkakukatakana&lt;/span&gt;&lt;span&gt;[&lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt;])  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    }  &lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    &lt;span class="keyword"&gt;for&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt; = 0; &lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt; -lt &lt;/span&gt;&lt;span class="variable"&gt;$zenkakukatakana&lt;/span&gt;&lt;span&gt;.Length; &lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt;++) {  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;        &lt;span class="variable"&gt;$value&lt;/span&gt;&lt;span&gt; = &lt;/span&gt;&lt;span class="variable"&gt;$value&lt;/span&gt;&lt;span&gt;.Replace(&lt;/span&gt;&lt;span class="variable"&gt;$hanakakukatakana&lt;/span&gt;&lt;span&gt;[&lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt;], &lt;/span&gt;&lt;span class="variable"&gt;$zenkakukatakana&lt;/span&gt;&lt;span&gt;[&lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt;])  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;    }  &lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;    &lt;span class="keyword"&gt;return&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class="variable"&gt;$value&lt;/span&gt;&lt;span&gt;  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;}  &lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-2960085425620966486?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/2960085425620966486/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=2960085425620966486' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/2960085425620966486'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/2960085425620966486'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2009/04/powershell.html' title='PowerShellで半角カタカナを全角カタカナに変換してみる'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-4097395841508537421</id><published>2009-03-18T21:46:00.000+09:00</published><updated>2009-03-18T21:47:38.042+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><title type='text'>PowerShellでゴミ箱を操作するには</title><content type='html'>&lt;div&gt;まずは、準備。&lt;/div&gt;&lt;div&gt;&gt; $shell = New-Object -comObject Shell.Application&lt;/div&gt;&lt;div&gt;&gt; $shell.NameSpace(10)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Title                      : ごみ箱&lt;/div&gt;&lt;div&gt;Application                : System.__ComObject&lt;/div&gt;&lt;div&gt;Parent                     :&lt;/div&gt;&lt;div&gt;ParentFolder               : System.__ComObject&lt;/div&gt;&lt;div&gt;Self                       : System.__ComObject&lt;/div&gt;&lt;div&gt;OfflineStatus              :&lt;/div&gt;&lt;div&gt;HaveToShowWebViewBarricade : False&lt;/div&gt;&lt;div&gt;ShowWebViewBarricade       : False&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ゴミ箱の中のファイル数を取得する。&lt;/div&gt;&lt;div&gt;&gt; $shell.NameSpace(10).Items().Count&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ごみ箱の中のファイル名の一覧を取得する。&lt;/div&gt;&lt;div&gt;&gt; $shell.NameSpace(10).Items() | % { $_.Name }&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;新規 Microsoft Office Word 文書.docx&lt;/div&gt;&lt;div&gt;新しいテキスト ドキュメント.txt&lt;/div&gt;&lt;div&gt;新規 Microsoft Office Excel ワークシート.xlsx&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;一つ目のファイルの情報を取得する。ここでは、$itemに入れている。&lt;/div&gt;&lt;div&gt;&gt; $item = $shell.NameSpace(10).Items().Item(0)&lt;/div&gt;&lt;div&gt;&gt; $item&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Application  : System.__ComObject&lt;/div&gt;&lt;div&gt;Parent       : System.__ComObject&lt;/div&gt;&lt;div&gt;Name         : 新規 Microsoft Office Word 文書.docx&lt;/div&gt;&lt;div&gt;Path         : C:\$Recycle.Bin\S-1-5-21-2464054850-802308169-2795062852-1001\$R95HRWN.docx&lt;/div&gt;&lt;div&gt;GetLink      :&lt;/div&gt;&lt;div&gt;GetFolder    : System.__ComObject&lt;/div&gt;&lt;div&gt;IsLink       : False&lt;/div&gt;&lt;div&gt;IsFolder     : False&lt;/div&gt;&lt;div&gt;IsFileSystem : True&lt;/div&gt;&lt;div&gt;IsBrowsable  : False&lt;/div&gt;&lt;div&gt;ModifyDate   : 2009/03/18 21:07:06&lt;/div&gt;&lt;div&gt;Size         : 0&lt;/div&gt;&lt;div&gt;Type         : Microsoft Office Word 文書&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;上記だけでは、ファイル自身の情報が今一わからないのでGetDetailsOfを使ってもっと細かい情報を取得する。&lt;/div&gt;&lt;div&gt;GetDetailsOfで取得できる情報は、ごみ箱を開いた時に表示される列の順なので、0から順に9列目まで取得する。&lt;/div&gt;&lt;div&gt;&gt; 0..8 | % { $shell.NameSpace(10).GetDetailsOf( $item, $_ ) }&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;新規 Microsoft Office Word 文書.docx&lt;/div&gt;&lt;div&gt;C:\Test&lt;/div&gt;&lt;div&gt; 2009/ 03/ 18   21:07&lt;/div&gt;&lt;div&gt;0 バイト&lt;/div&gt;&lt;div&gt;Microsoft Office Word 文書&lt;/div&gt;&lt;div&gt; 2009/ 03/ 18   21:07&lt;/div&gt;&lt;div&gt; 2009/ 03/ 18   21:07&lt;/div&gt;&lt;div&gt; 2009/ 03/ 18   21:07&lt;/div&gt;&lt;div&gt;A&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ゴミ箱からファイルを削除する。&lt;/div&gt;&lt;div&gt;&gt; Remove-Item $item.Path&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;指定したファイルを元に戻す、元の場所じゃなくてもいいけど。&lt;/div&gt;&lt;div&gt;&gt; Move-Item $item.Path ( Join-Path $shell.NameSpace(10).GetDetailsOf( $item, 1 ) $item.Name )&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-4097395841508537421?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/4097395841508537421/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=4097395841508537421' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/4097395841508537421'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/4097395841508537421'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2009/03/powershell.html' title='PowerShellでゴミ箱を操作するには'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-4013045613134992278</id><published>2009-03-04T22:00:00.008+09:00</published><updated>2009-03-04T22:29:10.159+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><title type='text'>PowerShellでPDFのサイズを取得する。</title><content type='html'>PDFの扱うために、&lt;a href="http://sourceforge.net/projects/itextsharp/"&gt;iTextSharp&lt;/a&gt;からitextsharp-4.1.2-dll.zipを落としてくる。&lt;div&gt;itextsharp.dllが入っているので適当な場所に配置する。&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;PowerShellからitextsharp.dllのあるフォルダでDLLを読み込む。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&gt; [System.Reflection.Assembly]::LoadFrom(( Join-Path $pwd itextsharp.dll))&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;GAC    Version        Location&lt;/div&gt;&lt;div&gt;---    -------        --------&lt;/div&gt;&lt;div&gt;False  v1.1.4322      C:\itextsharp-4.1.2-dll\itextsharp.dll&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;これで準備ができたので、PdfReaderを使ってサイズを取得したいPDFファイルを読み込む。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&gt; $pdfReader = New-Object　iTextSharp.text.pdf.PdfReader(( Join-Path $pwd foo.pdf))&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;１ページめのサイズを取得する。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&gt; $pdfReader.GetPageSize(1)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Type               : 30&lt;/div&gt;&lt;div&gt;Chunks             : {}&lt;/div&gt;&lt;div&gt;Top                : 841.875&lt;/div&gt;&lt;div&gt;Border             : -1&lt;/div&gt;&lt;div&gt;GrayFill           : 0&lt;/div&gt;&lt;div&gt;Left               : 0&lt;/div&gt;&lt;div&gt;Right              : 595.275&lt;/div&gt;&lt;div&gt;Bottom             : 0&lt;/div&gt;&lt;div&gt;BorderColorBottom  :&lt;/div&gt;&lt;div&gt;BorderColorTop     :&lt;/div&gt;&lt;div&gt;BorderColorLeft    :&lt;/div&gt;&lt;div&gt;BorderColorRight   :&lt;/div&gt;&lt;div&gt;Width              : 595.275&lt;/div&gt;&lt;div&gt;Height             : 841.875&lt;/div&gt;&lt;div&gt;BorderWidth        : -1&lt;/div&gt;&lt;div&gt;BorderColor        :&lt;/div&gt;&lt;div&gt;BackgroundColor    :&lt;/div&gt;&lt;div&gt;Rotation           : 0&lt;/div&gt;&lt;div&gt;BorderWidthLeft    : -1&lt;/div&gt;&lt;div&gt;BorderWidthRight   : -1&lt;/div&gt;&lt;div&gt;BorderWidthTop     : -1&lt;/div&gt;&lt;div&gt;BorderWidthBottom  : -1&lt;/div&gt;&lt;div&gt;UseVariableBorders : False&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;このファイルのページサイズは、&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&gt;$pdfReader.GetPageSize(1).Height #高さ&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;841.875&lt;/div&gt;&lt;div&gt;&gt;$pdfReader.GetPageSize(1).Width #幅&lt;/div&gt;&lt;/div&gt;&lt;div&gt;595.275&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;このファイルはA4縦なわけだけど、数字だけみてもわからないのでiTextSharpで定義されているA4縦と比較する。&lt;/div&gt;&lt;div&gt;定義されているA4縦はこれでわかる。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&gt; [ITextSharp.text.PageSize]::A4&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Top                :&lt;/div&gt;&lt;div&gt;Border             :&lt;/div&gt;&lt;div&gt;GrayFill           :&lt;/div&gt;&lt;div&gt;Left               :&lt;/div&gt;&lt;div&gt;Right              :&lt;/div&gt;&lt;div&gt;Bottom             :&lt;/div&gt;&lt;div&gt;BorderColorBottom  :&lt;/div&gt;&lt;div&gt;BorderColorTop     :&lt;/div&gt;&lt;div&gt;BorderColorLeft    :&lt;/div&gt;&lt;div&gt;BorderColorRight   :&lt;/div&gt;&lt;div&gt;BorderWidth        :&lt;/div&gt;&lt;div&gt;BorderColor        :&lt;/div&gt;&lt;div&gt;BackgroundColor    :&lt;/div&gt;&lt;div&gt;BorderWidthLeft    :&lt;/div&gt;&lt;div&gt;BorderWidthRight   :&lt;/div&gt;&lt;div&gt;BorderWidthTop     :&lt;/div&gt;&lt;div&gt;BorderWidthBottom  :&lt;/div&gt;&lt;div&gt;UseVariableBorders :&lt;/div&gt;&lt;div&gt;Type               : 30&lt;/div&gt;&lt;div&gt;Chunks             : {}&lt;/div&gt;&lt;div&gt;Width              : 595&lt;/div&gt;&lt;div&gt;Height             : 842&lt;/div&gt;&lt;div&gt;Rotation           : 0&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;上記の値を使って、ファイルのページサイズをint型にキャストして比較する。&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&gt; [iTextSharp.text.PageSize]::A4.Height -eq [int]$pdfReader.GetPageSize(1).Height&lt;/div&gt;&lt;div&gt;True&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ちなみに、A4横の高さと幅を得るには、&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&gt; [iTextSharp.text.PageSize]::A4.Rotate().Height #高さ&lt;/div&gt;&lt;div&gt;595&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&gt; [iTextSharp.text.PageSize]::A4.Rotate().Width #幅&lt;/div&gt;&lt;div&gt;842&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;で、取得できる。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-4013045613134992278?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/4013045613134992278/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=4013045613134992278' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/4013045613134992278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/4013045613134992278'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2009/03/powershellpdf.html' title='PowerShellでPDFのサイズを取得する。'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-5810874930062728807</id><published>2009-01-29T21:53:00.003+09:00</published><updated>2009-01-29T22:13:52.380+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><title type='text'>PowerShellでStringTemplateを使ってみる</title><content type='html'>まず、&lt;a href="http://www.stringtemplate.org/download.html"&gt;StringTemplate&lt;/a&gt;のサイトからDLLを落としてくる。&lt;br /&gt;&lt;br /&gt;その中から、&lt;br /&gt;・　antlr.runtime.dll&lt;br /&gt;・　StringTemplate.dll&lt;br /&gt;の二つを、適当なフォルダにコピーしておく。&lt;br /&gt;&lt;br /&gt;テンプレートファイルはfoo.stというファイル名で&lt;br /&gt;foo : $foo$&lt;br /&gt;みないなのを作る。&lt;br /&gt;&lt;br /&gt;先ほど、コピーした二つのファイルとfoo.stのあるフォルダで下記を実行する。&lt;br /&gt;&lt;br /&gt;&gt; [void][System.Reflection.Assembly]::LoadFrom(( Join-Path $pwd StringTemplate.dll))&lt;br /&gt;&gt; $sr = New-Object System.IO.StreamReader(&lt;br /&gt;&gt;&gt;　( Join-Path $pwd  foo.st ) ,&lt;br /&gt;&gt;&gt;   [System.Text.Encoding]::GetEncoding("shift-jis"))&lt;br /&gt;&gt;&gt;&lt;br /&gt;&gt; $t = New-Object antlr.StringTemplate.StringTemplate($sr.ReadToEnd())&lt;br /&gt;&gt; $sr.Close()&lt;br /&gt;&gt; $t.SetAttribute("foo","テスト")&lt;br /&gt;&gt; $t.ToString()&lt;br /&gt;&lt;br /&gt;結果：&lt;br /&gt;&lt;br /&gt;foo : テスト&lt;br /&gt;&lt;br /&gt;みたいに返ってくる。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-5810874930062728807?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/5810874930062728807/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=5810874930062728807' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/5810874930062728807'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/5810874930062728807'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2009/01/powershellstringtemplate.html' title='PowerShellでStringTemplateを使ってみる'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-1882693271096613447</id><published>2008-12-03T19:20:00.003+09:00</published><updated>2008-12-03T19:25:54.588+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><title type='text'>PowerShellでリモートのイベントログを取得する</title><content type='html'>PowerShellでサーバーのイベントログを取得する必要があったので試してみた。&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&gt; $e = New-Object System.Diagnostics.EventLog&lt;/div&gt;&lt;div&gt;&gt; $e.Log = "application"&lt;/div&gt;&lt;div&gt;&gt; $e.MachineName = "RemoteServerName" 　#リモートのサーバー名を指定する&lt;/div&gt;&lt;div&gt;&gt; $e.Entries&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Index Time          Type Source                EventID Message&lt;/div&gt;&lt;div&gt;----- ----          ---- ------                ------- -------&lt;/div&gt;&lt;div&gt;  886 9 04 11:30    Info Windows Search Se...     1013 Windows Search サービスが正常に停止しまし...&lt;/div&gt;&lt;div&gt;  887 9 04 11:30    Info Service1                    0 サービスが正常に終了しました。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ついでに、CSVに出力&lt;/div&gt;&lt;div&gt;&gt; $e.Entries | Export-Csv -Encoding default application.csv&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;文字コードを変えてあげないと、開いた時に文字化けする・・・&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-1882693271096613447?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/1882693271096613447/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=1882693271096613447' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/1882693271096613447'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/1882693271096613447'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2008/12/powershell.html' title='PowerShellでリモートのイベントログを取得する'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-7076153425888224786</id><published>2008-10-17T22:22:00.002+09:00</published><updated>2008-10-17T22:32:08.269+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><title type='text'>PowerShellでExcel操作した時に残るプロセスについて</title><content type='html'>PowerShellでExcelを操作するとプロセスが残ってしまっていました。&lt;div&gt;ComObjectなので最後までちゃんと面倒見てあげてなかったのが原因です。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.microsoft.com.nsatc.net/communities/newsgroups/en-us/default.aspx?dg=microsoft.public.windows.powershell&amp;amp;tid=144024d1-0530-4350-8724-cf42c9b0786d&amp;amp;cat=en_US_3750E87B-4971-4A5C-A537-45F5D7ABBECC&amp;amp;lang=en&amp;amp;cr=US&amp;amp;sloc=&amp;amp;p=1"&gt;Excel Cook Book in Windows PowerShell&lt;/a&gt;にちゃんと廃棄してあげるようにRelease-Refが紹介されていました。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;$excel.Quit() した後に、この関数に今まで参照していた$excel、$workBooks、$workSheet、$rengeなどを渡してあげると、無事逝ってくれます。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;これを知るまで、Stop-Prosess -Name "EXCEL"で皆殺しにしていたので・・・&lt;/div&gt;&lt;div&gt;これで、すっきりしました。&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-7076153425888224786?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/7076153425888224786/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=7076153425888224786' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/7076153425888224786'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/7076153425888224786'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2008/10/powershellexcel_17.html' title='PowerShellでExcel操作した時に残るプロセスについて'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-7301023169635111912</id><published>2008-10-05T21:55:00.008+09:00</published><updated>2009-06-20T02:09:35.575+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><title type='text'>PowerShellでExcelの値を取得してXMLにしてみる</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_G8lr2TpoXWI/SOi5qqSpz8I/AAAAAAAAAAs/rrAwKTvN6zQ/s1600-h/foo.PNG"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_G8lr2TpoXWI/SOi5qqSpz8I/AAAAAAAAAAs/rrAwKTvN6zQ/s320/foo.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5253653107885854658" /&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;foo.xlsが右の見たいなのとして&lt;/span&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;excel&gt;&lt;/excel&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;foo.ps1 &gt; foo.xml&lt;br /&gt;&lt;/div&gt;&lt;div&gt;で&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;div&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;lt;excel&amp;gt;&lt;/div&gt;&lt;div&gt;  &amp;lt;data&amp;gt;&lt;/div&gt;&lt;div&gt;    &amp;lt;date&amp;gt;2008/1/1&amp;lt;/date&amp;gt;&lt;/div&gt;&lt;div&gt;    &amp;lt;foo&amp;gt;1&amp;lt;/foo&amp;gt;&lt;/div&gt;&lt;div&gt;    &amp;lt;bar&amp;gt;12&amp;lt;/bar&amp;gt;&lt;/div&gt;&lt;div&gt;    &amp;lt;baz&amp;gt;100&amp;lt;/baz&amp;gt;&lt;/div&gt;&lt;div&gt;  &amp;lt;/data&amp;gt;&lt;/div&gt;&lt;div&gt;  ・&lt;/div&gt;&lt;div&gt;  ・&lt;/div&gt;&lt;div&gt;  ・&lt;/div&gt;&lt;div&gt;&amp;lt;/excel&amp;gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;見たいにしてみる。&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;--- foo.ps1 ---&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="dp-highlighter" id="hlDiv"&gt;&lt;div class="bar"&gt;&lt;/div&gt;&lt;ol start="1" class="dp-rb"&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$filePath&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class="builtin"&gt;Get-ChildItem&lt;/span&gt;&lt;span&gt;&amp;nbsp;foo.xls*&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$excel&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt;&amp;nbsp;-comobject&amp;nbsp;Excel.Application&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$workBooks&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class="variable"&gt;$excel&lt;/span&gt;&lt;span&gt;.Workbooks.Open(&lt;/span&gt;&lt;span class="variable"&gt;$filePath&lt;/span&gt;&lt;span&gt;)&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="comment"&gt;#Sheet1を取得する&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$workbooks&lt;/span&gt;&lt;span&gt;.Worksheets&amp;nbsp;|&amp;nbsp;%&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span class="keyword"&gt;if&lt;/span&gt;&lt;span&gt;&amp;nbsp;(&lt;/span&gt;&lt;span class="variable"&gt;$_&lt;/span&gt;&lt;span&gt;.Index&amp;nbsp;-eq&amp;nbsp;1)&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span class="variable"&gt;$sheet&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class="variable"&gt;$_&lt;/span&gt;&lt;span&gt;;&amp;nbsp;}}&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;@&lt;span class="string"&gt;"&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="string"&gt;&amp;lt;?xml&amp;nbsp;version="&lt;/span&gt;&lt;span&gt;1.0&lt;/span&gt;&lt;span class="string"&gt;"&amp;nbsp;encoding="&lt;/span&gt;&lt;span&gt;utf-8&lt;/span&gt;&lt;span class="string"&gt;"?&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="string"&gt;&amp;lt;excel&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="string"&gt;"&lt;/span&gt;&lt;span&gt;@&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="keyword"&gt;foreach&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="keyword"&gt;in&lt;/span&gt;&lt;span&gt;&amp;nbsp;2..13)&amp;nbsp;{&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&amp;nbsp;&lt;span class="variable"&gt;$d&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class="variable"&gt;$sheet&lt;/span&gt;&lt;span&gt;.Cells.Item(&lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt;,1).Text;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&amp;nbsp;&lt;span class="variable"&gt;$foo&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class="variable"&gt;$sheet&lt;/span&gt;&lt;span&gt;.Cells.Item(&lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt;,2).Text;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&amp;nbsp;&lt;span class="variable"&gt;$bar&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class="variable"&gt;$sheet&lt;/span&gt;&lt;span&gt;.Cells.Item(&lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt;,3).Text;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&amp;nbsp;&lt;span class="variable"&gt;$baz&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class="variable"&gt;$sheet&lt;/span&gt;&lt;span&gt;.Cells.Item(&lt;/span&gt;&lt;span class="variable"&gt;$i&lt;/span&gt;&lt;span&gt;,4).Text;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;@&lt;span class="string"&gt;"&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="string"&gt;&amp;nbsp;&amp;nbsp;&amp;lt;data&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="string"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;date&amp;gt;$d&amp;lt;/date&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="string"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;foo&amp;gt;$foo&amp;lt;/foo&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="string"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;bar&amp;gt;$bar&amp;lt;/bar&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="string"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;baz&amp;gt;$baz&amp;lt;/baz&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="string"&gt;&amp;nbsp;&amp;nbsp;&amp;lt;/data&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="string"&gt;"&lt;/span&gt;&lt;span&gt;@&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;}&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;@&lt;span class="string"&gt;"&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="string"&gt;&amp;lt;/excel&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="string"&gt;"&lt;/span&gt;&lt;span&gt;@&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$workBooks&lt;/span&gt;&lt;span&gt;.Close()&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$excel&lt;/span&gt;&lt;span&gt;.Quit()&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-7301023169635111912?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/7301023169635111912/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=7301023169635111912' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/7301023169635111912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/7301023169635111912'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2008/10/powershellexcelxml.html' title='PowerShellでExcelの値を取得してXMLにしてみる'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_G8lr2TpoXWI/SOi5qqSpz8I/AAAAAAAAAAs/rrAwKTvN6zQ/s72-c/foo.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-2694745307545345757</id><published>2008-10-05T21:52:00.002+09:00</published><updated>2009-06-20T02:10:45.823+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><title type='text'>PowerShellでExcel操作</title><content type='html'>foo.xlsがスプリクトと同じフォルダにあるとして・・・&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;--- foo.ps1 ---&lt;/div&gt;&lt;br /&gt;&lt;div class="dp-highlighter" id="hlDiv"&gt;&lt;div class="bar"&gt;&lt;/div&gt;&lt;ol start="1" class="dp-rb"&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$filePath&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class="builtin"&gt;Get-ChildItem&lt;/span&gt;&lt;span&gt;&amp;nbsp;foo.xls*&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$excel&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class="builtin"&gt;New-Object&lt;/span&gt;&lt;span&gt;&amp;nbsp;-comobject&amp;nbsp;Excel.Application&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$excel&lt;/span&gt;&lt;span&gt;.Visible&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class="variable"&gt;$True&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$workBooks&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class="variable"&gt;$excel&lt;/span&gt;&lt;span&gt;.Workbooks.Open(&lt;/span&gt;&lt;span class="variable"&gt;$filePath&lt;/span&gt;&lt;span&gt;)&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="comment"&gt;#Sheet1を取得する&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$workbooks&lt;/span&gt;&lt;span&gt;.Worksheets&amp;nbsp;|&amp;nbsp;%&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span class="keyword"&gt;if&lt;/span&gt;&lt;span&gt;&amp;nbsp;(&lt;/span&gt;&lt;span class="variable"&gt;$_&lt;/span&gt;&lt;span&gt;.Index&amp;nbsp;-eq&amp;nbsp;1)&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span class="variable"&gt;$sheet&lt;/span&gt;&lt;span&gt;&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span class="variable"&gt;$_&lt;/span&gt;&lt;span&gt;;&amp;nbsp;}}&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;#A1の値が表示される&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$sheet&lt;/span&gt;&lt;span&gt;.Cells.Item(1,1).Text&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="comment"&gt;#文字のColorIndexが表示される&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$sheet&lt;/span&gt;&lt;span&gt;.Cells.Item(1,1).Font.ColorIndex&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="comment"&gt;#セルのColorIndexが表示される&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$sheet&lt;/span&gt;&lt;span&gt;.Cells.Item(1,1).Interior.ColorIndex&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="variable"&gt;$workBooks&lt;/span&gt;&lt;span&gt;.Close()&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="variable"&gt;$excel&lt;/span&gt;&lt;span&gt;.Quit()&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-2694745307545345757?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/2694745307545345757/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=2694745307545345757' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/2694745307545345757'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/2694745307545345757'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2008/10/powershellexcel.html' title='PowerShellでExcel操作'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-1120416787995702970</id><published>2008-09-28T14:28:00.003+09:00</published><updated>2009-06-20T02:12:34.407+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='boo'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net'/><title type='text'>Microsoft.VisualBasic.FileIOでCSVの読み込み</title><content type='html'>使ったCSVファイル&lt;div&gt;--- foo.csv ---&lt;br /&gt;&lt;div&gt;&lt;div&gt;"aaa,aaa","aaa","aaa"&lt;/div&gt;&lt;div&gt;"bbb","bbb,bbb","bbb"&lt;/div&gt;&lt;div&gt;"ccc","ccccccc","c,c"&lt;/div&gt;&lt;div&gt;--- ---&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Booで読んでみた&lt;/div&gt;&lt;div&gt;--- foo.boo ---&lt;/div&gt;&lt;br /&gt;&lt;div class="dp-highlighter" id="hlDiv"&gt;&lt;div class="bar"&gt;&lt;/div&gt;&lt;ol start="1" class="dp-py"&gt;&lt;li class="alt"&gt;&lt;span&gt;&lt;span class="keyword"&gt;import&lt;/span&gt;&lt;span&gt;&amp;nbsp;System&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="keyword"&gt;import&lt;/span&gt;&lt;span&gt;&amp;nbsp;Microsoft.VisualBasic.FileIO&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;p&amp;nbsp;=&amp;nbsp;TextFieldParser("foo.&lt;span class="commonlibs"&gt;csv&lt;/span&gt;&lt;span&gt;")&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;p.TextFieldType&amp;nbsp;=&amp;nbsp;FieldType.Delimited&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;p.SetDelimiters(",")&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&lt;span class="keyword"&gt;while&lt;/span&gt;&lt;span&gt;&amp;nbsp;(&lt;/span&gt;&lt;span class="keyword"&gt;not&lt;/span&gt;&lt;span&gt;&amp;nbsp;p.EndOfData):&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;r&amp;nbsp;=&amp;nbsp;p.ReadFields()&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li class="alt"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&lt;span class="keyword"&gt;for&lt;/span&gt;&lt;span&gt;&amp;nbsp;i&amp;nbsp;&lt;/span&gt;&lt;span class="keyword"&gt;in&lt;/span&gt;&lt;span&gt;&amp;nbsp;r:&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class=""&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="keyword"&gt;print&lt;/span&gt;&lt;span&gt;&amp;nbsp;i&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;---　結果 ---&lt;/div&gt;&lt;div&gt;&lt;div&gt;aaa,aaa&lt;/div&gt;&lt;div&gt;aaa&lt;/div&gt;&lt;div&gt;aaa&lt;/div&gt;&lt;div&gt;bbb&lt;/div&gt;&lt;div&gt;bbb,bbb&lt;/div&gt;&lt;div&gt;bbb&lt;/div&gt;&lt;div&gt;ccc&lt;/div&gt;&lt;div&gt;ccccccc&lt;/div&gt;&lt;div&gt;c,c&lt;/div&gt;&lt;div&gt;--- ---&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;楽チン過ぎてちょっとカルチャーショック!!&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-1120416787995702970?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/1120416787995702970/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=1120416787995702970' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/1120416787995702970'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/1120416787995702970'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2008/09/microsoftvisualbasicfileiocsv.html' title='Microsoft.VisualBasic.FileIOでCSVの読み込み'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-2593483775887610781</id><published>2008-09-23T20:40:00.005+09:00</published><updated>2008-09-23T20:49:28.560+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VBA'/><title type='text'>VBA ２次元配列</title><content type='html'>&lt;div&gt;VBAで２次元配列の作り方&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;１．セルの値を丸ごと配列に入れる。&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Dim values As Variant&lt;/div&gt;&lt;div&gt;values = Range("A1:B10")&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;アクセス方法（A4の値）&lt;/div&gt;&lt;div&gt;values(1, 4)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;行の長さを求めるには&lt;/div&gt;&lt;div&gt;Ubound(values)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;列の長さは、（ここでは２列目）&lt;/div&gt;&lt;div&gt;Ubound(values, 2)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;２．セルを使わずに初期化して作る。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Dim values As Variant&lt;br /&gt;&lt;/div&gt;&lt;div&gt;values = Array(Array(11, 12, 13) , Array(21, 22, 23))&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;アクセス方法（2行目の1列目の値　２１）&lt;/div&gt;&lt;div&gt;values(1)(0)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;行の長さ&lt;/div&gt;&lt;div&gt;Ubound(values)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;列の長さ（2列目）&lt;/div&gt;&lt;div&gt;Ubound(values(1))&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-2593483775887610781?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/2593483775887610781/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=2593483775887610781' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/2593483775887610781'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/2593483775887610781'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2008/09/vba.html' title='VBA ２次元配列'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-8973670030047671179</id><published>2008-09-23T14:43:00.002+09:00</published><updated>2008-09-23T14:57:04.206+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><title type='text'>自PCのIPアドレスを取得する</title><content type='html'>&lt;div&gt;複数ある場合は、foreachでまわして探す。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;$localHostName = [System.Net.Dns]::GetHostName()&lt;/div&gt;&lt;div&gt;$localIP = [System.Net.Dns]::GetHostByName( $localHostName )&lt;/div&gt;&lt;div&gt;$localIP.AddressList[0].ToString()&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-8973670030047671179?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/8973670030047671179/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=8973670030047671179' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/8973670030047671179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/8973670030047671179'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2008/09/pcip.html' title='自PCのIPアドレスを取得する'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-3582118952575285832</id><published>2008-09-23T14:36:00.002+09:00</published><updated>2008-09-23T14:42:33.701+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><title type='text'>ディスクの空き容量</title><content type='html'>PowerShell&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;空き容量の％&lt;/div&gt;&lt;div&gt;$d = New-Object System.IO.DriveInfo("C")&lt;/div&gt;&lt;div&gt;$d.TotalFreeSpace / ( $d.TotalSize / 100)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ディスクサイズ（GB)&lt;/div&gt;&lt;div&gt;$d.TotalSize / 1GB&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-3582118952575285832?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/3582118952575285832/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=3582118952575285832' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/3582118952575285832'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/3582118952575285832'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2008/09/blog-post_23.html' title='ディスクの空き容量'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-7556305693487546708</id><published>2008-09-23T14:34:00.003+09:00</published><updated>2008-09-23T14:36:13.709+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VBA'/><category scheme='http://www.blogger.com/atom/ns#' term='PowerShell'/><title type='text'>リムーバブルディスクの取り出し</title><content type='html'>よく忘れるのでメモ。&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;PowerShell&lt;/div&gt;&lt;div&gt;$Shell.Application.NameSpace(17).ParseName('D:\').InvokeVerb("取り出し(&amp;amp;J)")&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;VBScript&lt;/div&gt;&lt;div&gt;CreateObject("Shell.Application").NameSpace("D:\").Items.Item.InvokeVerb "取り出し(&amp;amp;J)"&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-7556305693487546708?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/7556305693487546708/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=7556305693487546708' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/7556305693487546708'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/7556305693487546708'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2008/09/blog-post.html' title='リムーバブルディスクの取り出し'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-857784391350872009</id><published>2008-06-16T23:50:00.004+09:00</published><updated>2009-06-20T02:17:24.943+09:00</updated><title type='text'>Excel/VBAでスペース区切り出力する</title><content type='html'>　Excelで固定長でTextファイルで保存する際に、.prn(スペース区切り)で保存すると、Excelの仕様で240文字までしか一行で出力できなかったので、簡単なスペース区切りができるマクロを作成してみました。&lt;br /&gt;　かなり適当に作ってあります。&lt;br /&gt;　範囲指定は「A1:H10」のような感じで入力してください。&lt;br /&gt;　ファイル名は、元ファイルと同じ場所で、シート名.txtで保存されます。&lt;br /&gt;&lt;br /&gt;--- 以下　コード ---&lt;br /&gt;&lt;pre name="code" class="vb"&gt;&lt;br /&gt;Sub SpaseSeparatedValues()&lt;br /&gt;  Dim i, j As Integer&lt;br /&gt;&lt;br /&gt;  Dim fileName As String&lt;br /&gt;  fileName = ActiveWorkbook.Path &amp;amp; "\" &amp;amp; ActiveSheet.Name &amp;amp; ".txt"&lt;br /&gt;&lt;br /&gt;  Dim scope As String&lt;br /&gt;  scope = InputBox("スペース区切りで出力したい範囲をしていしてください。", "SpaseSeparatedValues")&lt;br /&gt;&lt;br /&gt;  Dim data As Variant&lt;br /&gt;  data = Range(scope)&lt;br /&gt;&lt;br /&gt;  Dim fileNo As Integer&lt;br /&gt;&lt;br /&gt;  fileNo = FreeFile()&lt;br /&gt;  Open fileName For Output As #fileNo&lt;br /&gt;&lt;br /&gt;      Dim printLine As String&lt;br /&gt;   &lt;br /&gt;      For i = 1 To UBound(data)&lt;br /&gt;          printLine = ""&lt;br /&gt;          For j = 1 To UBound(data, 2)&lt;br /&gt;              printLine = printLine &amp;amp; data(i, j) &amp;amp; Space(Int(Cells(i, j).ColumnWidth) - Len(data(i, j)))&lt;br /&gt;          Next&lt;br /&gt;          Print #fileNo, printLine&lt;br /&gt;      Next&lt;br /&gt;  Close #fileNo&lt;br /&gt;End Sub&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-857784391350872009?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/857784391350872009/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=857784391350872009' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/857784391350872009'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/857784391350872009'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2008/06/excelvba.html' title='Excel/VBAでスペース区切り出力する'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-9112873472042659993</id><published>2008-03-07T23:32:00.000+09:00</published><updated>2008-03-08T21:24:32.126+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>VineLinux4.2でmonoを使ってみる</title><content type='html'>　久しぶりにLinuxを使ったけど、思ったより早い。前にUbuntoを使ったときは、なんか、もっさりしてる感じだったから、あんまり使わなかったけど、これならだいぶいい。&lt;br /&gt;　仕事では、ずっとWindowsだからなんか、ちょっと戸惑うけど。&lt;br /&gt;　C#でプログラミングしたいので、monoをインストールしてみる。ソースから入れたほうが、最新のものを試せるけど、まずは、Vineのパッケージを試してみる。&lt;br /&gt;&lt;br /&gt;apt-get install mono-core&lt;br /&gt;apt-get install mono-devel&lt;br /&gt;apt-get install mono-winforms&lt;br /&gt;&lt;br /&gt;　バージョン的には少し古いけど、十分使えるだろう。早速、テストコードをコンパイル。思ったより、あっさりとコンパイルできた。ただ、フォームを表示して、メッセージボックスを出しただけだから、たいしたことはないけどLinuxでC#が動くと、ちょっとびっくり。&lt;br /&gt;　ただ、バージョンが古いからなのか、partialで分割クラスが使えない。テストコードははじめ、Program.cs、Form1.cs、Form1.Designer.csにしていたけど、コンパイルでpartialがどうとかでるので、ひとつにまとめた。&lt;br /&gt;　あと、namespaceを使うとこれもコンパイルできない。なんでだ？そのnamespaseにはこのアプリはない。見たいなエラーになる。やっぱり最新のものを入れたほうがいいな。&lt;br /&gt;　こんど、ソースからインストールしてみよう。なんか、面倒くさそうな気がするけどね。その時には、monodevelopも入れたいな。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-9112873472042659993?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/9112873472042659993/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=9112873472042659993' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/9112873472042659993'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/9112873472042659993'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2008/03/vinelinux42mono.html' title='VineLinux4.2でmonoを使ってみる'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-4489994110810931555</id><published>2008-03-05T21:33:00.000+09:00</published><updated>2008-03-05T21:33:23.026+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vi'/><title type='text'>viよく使うコマンドメモ</title><content type='html'>最近ログをチェックすることが多いので、こんなんばっかり。バイナリを見るのは、設定ファイルがシリアル化してた場合･･･&lt;br /&gt;&lt;br /&gt;文字数カウント&lt;br /&gt;:%s/./&amp;amp;/g&lt;br /&gt;&lt;br /&gt;fooを含む行を削除&lt;br /&gt;:%g/foo/d&lt;br /&gt;&lt;br /&gt;fooを含まない行を削除&lt;br /&gt;:%v/foo/d&lt;br /&gt;&lt;br /&gt;空白行を削除&lt;br /&gt;:%g/^ *$/d&lt;br /&gt;&lt;br /&gt;バイナリエディタ&lt;br /&gt;:%!xxd&lt;br /&gt;:%!xxd -r&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-4489994110810931555?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/4489994110810931555/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=4489994110810931555' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/4489994110810931555'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/4489994110810931555'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2008/02/vi.html' title='viよく使うコマンドメモ'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-7161390282916292900</id><published>2008-03-02T12:10:00.002+09:00</published><updated>2008-03-02T12:15:27.112+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Windows Temporary Folderについて</title><content type='html'>　C#なんかでTempフォルダを使いたくなった時、その場所は、System.IO.Path.GetTempPath()で取得するけど、この時、得られるフォルダの場所は環境変数に定義されている順に先に見つかったのを返してくる。具体的には、&lt;br /&gt;&lt;br /&gt;1 TMP  C:\Document and Setting\&lt;username&gt;LocalSetting\Temp\&lt;br /&gt;2 TEMP C:\Document and Setting\&lt;username&gt;LocalSetting\Temp\&lt;br /&gt;3 USERPROFILE C:\Document and Setting\&lt;username&gt;&lt;br /&gt;&lt;br /&gt;　っとこれに関しては、これで良いんだけど、気になったのがこのTempフォルダはいつクリアされるのか？っという事だ。&lt;br /&gt;　Tempフォルダというとなんとなく、システム側で勝手に消してくれると思っていたけど、調べてみると実は違った。&lt;br /&gt;　確かに、ディスクのクリーンアップで消してはくれるけど、これは勝手にWindowsがしてくれる訳じゃなく、ユーザが自分でする必要がある。それまでは、ユーザが自分でわかってTemp領域のファイルをクリアするまで、そのまま残り続けるって事になる。&lt;br /&gt;　もし、自分で作ったアプリケーションでTempフォルダを使うなら、そこに置いた一時ファイルはちゃんと、アプリで消してあげないと、どんどん溜まってしまうことになる。まぁ溜まっても限界まできたら「ディスクのクリーンアップをして下さい。」メッセージがでるから、ほって置いてもかまわないのかもしれないし、最近のHDDはデカイからそれほど問題にはならないのかもしれない。&lt;br /&gt;　でも、少なくとも、自分が書く時には汚した所は自分で綺麗にして終了させるようにしたほうが礼儀正しいだろう。&lt;br /&gt;&lt;br /&gt;&lt;/username&gt;&lt;/username&gt;&lt;/username&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-7161390282916292900?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/7161390282916292900/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=7161390282916292900' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/7161390282916292900'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/7161390282916292900'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2008/03/windows-temporary-folder.html' title='Windows Temporary Folderについて'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-2825895413708784989</id><published>2008-02-29T00:13:00.000+09:00</published><updated>2008-03-01T09:40:41.791+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vi'/><title type='text'>Vimperator</title><content type='html'>　&lt;a href="http://opentechpress.jp/developer/07/06/28/025221.shtml"&gt;ここ&lt;/a&gt;で存在を知ったんだけど、神だ。最高だ。ちょっとたまにおかしな動きをするけど、すばらしい。マジで感動した。&lt;br /&gt;　ただ、ここまで拡張できるFireFoxが凄すぎると思うのは自分だけだろうか？&lt;br /&gt;&lt;br /&gt;自分が良く使うコマンドだけ、メモ。&lt;br /&gt;&lt;br /&gt;f : リンク先を選択（大文字で打てば、タブで開く、小文字だとアクティブなタブで開く）&lt;br /&gt;H :　戻る&lt;br /&gt;L :　進む&lt;br /&gt;j :　一行下にスクロール&lt;br /&gt;k :　一行上にスクロール&lt;br /&gt;C-f :　下にスクロール&lt;br /&gt;C-b :　上にスクロール&lt;br /&gt;y:URLをヤンク&lt;br /&gt;Y:選択文字をヤンク&lt;br /&gt;&lt;br /&gt;f[ :　ページ内でのウインドウ移動　右のページ？&lt;br /&gt;f] :　同じく　左のページ？かな&lt;br /&gt;gt :　タブ移動　右のタブ&lt;br /&gt;gT :　タブ移動　左のタブ&lt;br /&gt;gh :　ホームページ&lt;br /&gt;d :　タブを閉じる&lt;br /&gt;&lt;br /&gt;検索するのはアクティブな検索バー&lt;br /&gt;&lt;br /&gt;p:ヤンクした文字を検索&lt;br /&gt;P:ヤンクした文字を新しいタブで検索&lt;br /&gt;:o foo :　現在のタブでfooを検索&lt;br /&gt;:t foo :　新しいタブを開いてfooを検索&lt;br /&gt;:q :　終了、複数タブの場合はアクティブなタブを閉じる&lt;br /&gt;&lt;br /&gt;:bmarks :　ブックマークを開く、開いてアドレスをクリックしたらEscで閉じる&lt;br /&gt;:help :　英語だけど、ヘルプ&lt;br /&gt;:set guioptions+=mT :　ツールバーとメニューバーを表示&lt;br /&gt;:set guioptions-=mT :　非表示&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-2825895413708784989?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://vimperator.mozdev.org/' title='Vimperator'/><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/2825895413708784989/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=2825895413708784989' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/2825895413708784989'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/2825895413708784989'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2008/02/vimperator.html' title='Vimperator'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-5581691150045736215</id><published>2008-02-27T21:33:00.000+09:00</published><updated>2008-02-27T21:33:17.938+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>VineLinux4.2</title><content type='html'>　去年の12月に出てたみたいだけど、全然試してなかった。さっきダウンロードしたから、週末にでもインストールして、遊んでみよう。&lt;br /&gt;　気になったのは、ダウンロード速度。なんで、こんなに早いんだ？家の環境はかなり遅いと思ってるんだけど･･･。10分もかからずに落とせるとありがたいよ。前は、一晩かかってたからね。&lt;br /&gt;　最近はLinux関係の雑誌をあんまり見かけないから、インストールCDを自分で焼かないといけなくて、面倒だな。5年くらい前にはLinux系の雑誌っていっぱいあったように思うけど･･･寂しい限りだ。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-5581691150045736215?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://vinelinux.org/' title='VineLinux4.2'/><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/5581691150045736215/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=5581691150045736215' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/5581691150045736215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/5581691150045736215'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2008/02/vinelinux42.html' title='VineLinux4.2'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3434116510139620819.post-7990680862681818949</id><published>2008-02-22T22:13:00.002+09:00</published><updated>2008-02-25T20:32:15.198+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TV'/><title type='text'>プロフェッショナルとは･･･</title><content type='html'>「ファンを圧倒し、選手を圧倒し、圧倒的な結果を残す、ということです。」&lt;br /&gt;&lt;br /&gt;イチローカッコイイ(^ ^)/&lt;br /&gt;イチローのようになることは無理かもしれないけど（たぶん、無理だけど･･･）それでも、できるだけ近づきたいなぁ～。&lt;br /&gt;自分も、お金を貰って働いているんだから、お客さんを圧倒するような仕事ップリをしてみたいね。そのためには、もっと勉強して、一つの仕事に対してもっと考えないといけないな。どうしても、嫌いだったり、興味がない仕事だと適当にやっつけでやってしまうから。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3434116510139620819-7990680862681818949?l=kazemati.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.nhk.or.jp/professional/backnumber/080102/index.html' title='プロフェッショナルとは･･･'/><link rel='replies' type='application/atom+xml' href='http://kazemati.blogspot.com/feeds/7990680862681818949/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3434116510139620819&amp;postID=7990680862681818949' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/7990680862681818949'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3434116510139620819/posts/default/7990680862681818949'/><link rel='alternate' type='text/html' href='http://kazemati.blogspot.com/2008/02/blog-post.html' title='プロフェッショナルとは･･･'/><author><name>D.yamahata</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
