PowerShell
日付や時刻ではなく時間を扱う方法TimeSpanを使う > [TimeSpan]"12:34" Days : 0 Hours : 12 Minutes : 34 Seconds : 0 Milliseconds : 0 Ticks : 452400000000 TotalDays : 0.523611111111111 TotalHours : 12.5666666666667 TotalMinutes : 754 TotalSecon…
管理者でPowerShellのコンソールを起動し、下記を実行する。 ファイアウォール設定は、エクスポートしておいてからやる。 Get-NetFirewallRule -Direction Outbound | ? { $_.Enabled -eq $True } | % { Set-NetFirewallRule -Enabled False -Name $_.Name }…
$null -eq ($target.psobject.Propeties.Value | Where-Object { $_ -ne $null} | Select-Object -First 1})PSCustomObjectにpsobjectというプロパティがあることを知った。
プロパティ名が同じでも -eq で比較するとFalseになる。 プロパティだけ取り出して、Compare-Objectで比較する。 $a = [PSCustomObject]@{ a = "a" } $b = [PSCustomObject]@{ a = "a" } $c = [PSCustomObject]@{ a = "c" } $np = $a | Get-Member -Type Not…
Import-Module -Name PSSQLite $database = "C:\Users\<ユーザ名>\AppData\Roaming\Thunderbird\Profiles\<ランダムな文字列>.default\global-messages-db.sqlite" # 全件取得したい場合はlimit 1を削除する $query = "select * from messages INNER JOIN me…
指定したフォルダ($src)から指定したフォルダ($dest)にコピーするスクリプト。 ただし、ファイルやフォルダを一つコピーするたびに3秒待つ。 また、フォルダの更新日付はコピーした日付となる。 $src = "<コピー元のフォルダパス>" $dest = "<コピー先のフォ…
たまに下記のような、月ごとのデータを name mouth count Tom 5 2 Jhon 6 3 Tom 6 3 下記のように変換して、 月の遷移を確認したくなることがある。 name 5 6 Tom 2 3 Jhon 0 6 そういう場合は、Group-Objectを使うと便利 PS > $table = [PSCustomObject]@{n…
PowerShellでスクレイピング 後編 HTMLをパースする - PowerShell Scripting Weblog下記の記事で見つけた。 Invoke-WebRequestの結果は、 IEで解析されBody要素のDOMを扱えるとのことなので、 下記の通りすると、できる $contents = Invoke-WebRequest $url …
gooラボ 形態素解析APIを試してみる - pierre3のブログ上のブログに記載されてました。 Invoke-RestMethodは諦めて、下記のようにInvoke-WebRequestを使うようです。 $res = Invoke-WebRequest -Method Post $url -Body $body $con = [System.Text.Encoding]…
以前よりCOMを使ったexcelの操作方法は知っていたのだが、 覚えられるほど簡単ではなかったのであまり使かうことはなず、 csvファイルで出力し、手作業でxlsやxlsxファイルに変換することが多かった。先日、PowerShellGetの存在をしり、ImportExcelという モ…
get-uniqueでプロパティを指定できたら良かったのですが、 できないので、一度、重複判定するための列を追加して、 sort-objectを-uniqueを呼び出して、除去する。
ConvertTo-で始まるPowerShellのコマンドはいくつかあるので、動作確認結果。 ConvertTo-Xmlはちょっとだけ期待はずれ。 最初はcsv。 > ([PSCustomObject]@{id=1;name="Jhon"},[PSCustomObject]@{id=2;name="Tom"}) | ConvertTo-Csv #TYPE System.Management…
xmlのデータを集計など処理したい場合はPowerShellがおすすめ。 [xml]を使えば、解析してスクリプト上で簡単に扱えるようになる。例えば、下記のような呼び出し方。 xmlファイルのhoge.fooという値にアクセスできる。 [xml]$(Get-Content *.xml -Encoding ut…
以前、shuffleをPowerShellで実装したが冗長だっため、再び調べてみたら、すごく簡単な方法が見つかった。配列のshuffle - or1ko's diary下記のページに記載されている。 Get-Randomどうも -Count パラメータを指定すると、入力をshuffleするようだ。 PS > 1…
$ 1..100 | % { while ($(get-job -state running) -gt 10) { sleep-job 1 } start-job { # 実行したい処理を記載する } } PowerShell 3.0のworkflowのparallelが使えると思っていたのですが、 どうも並列化させたい個数は指定できないようです。 また、para…
PowerShellは非常に便利なツールなので、ついつい使い倒そうとしてしまうが、 そういって失敗し、イライラすることがよくある。それらを下記に列挙する。1. 日本語がいまいち PowerShellはShift-JISとEucがデフォルトで読めないし書けない。UTF-8にシステム…
予め用意した集団から適当に幾つかの値を取り出したい時に、配列をシャッフルしてn件取り出したくなる。 そこで、調べてみたところPowerShell及びC#の標準APIには配列をシャッフルするメソッドがないみたいだ。 じゃぁ、誰か作ってるだろうと思ってまた調べ…
PowerShellでHaskellのData.List.zip関数みたいなものがないかなと思っていたら、下記のページで見つけた。 function zip2($a, $b) { 0 .. ($a.count - 1) | % {, ($a[$_], $b[$_])} }PowerShell – Build a Zip Function, zipping two lists together こんな…
PowerShellの標準のコマンドレットには、Get-Processというものがあるが、この戻り値から取得できるプロセスのオブジェクトをたどっても、実行の際に渡された引数を取得できないみたいだ。StartInfoメンバがそれっぽいのだけれども、 下記のコマンドを試して…
以前、Reduceっぽいコマンドとして、ForEach-Objectコマンドをあげたが、PowerShellを日頃使っていくなかで、他にもいくつかみつけた。 Measure-Object : 合計とか求めるコマンド 以下みたいに使う。Count以外は指定しないと計算しない。 PS C:\> 1..10 | Me…
PowerShellを使っているときに、 プログラムにテキストを標準入力で与えるため、 下記のようなコマンドを実行した。 get-content input.txt | python test.py そしたら、異常にメモリを食いだし、 パソコンが遅くなったので、 しかたなく、プロセスを終了さ…
PowerShellでUnixのwhichに相当する機能は、Get-Commandだった。環境変数Pathに設定してあるだけなのに、Get-Commandで取れることにはびっくりした。今まで、"start"とかはMS-DOSと同じようにただ実行されているだけなのかと思っていたけれど、一度、Command…
iPadを買ってから、2chを見始めようになって、さらにダメ人間へと一歩踏み出したわけだが、 (iPad、2chをみるのにこれほど適したものはない。2tchに感謝) PowerShellのスレを見てたら、WASPというものの存在をしった。 Windows Automation Snapin for Power…
ref:Where is profile located in Windows 7 powershell? - Vista Forums 上のページから、抜粋。 > new-item -itemtype file -path $profile -force -forceが怖かったので、引数除いてつくった。
モナドか、 いつか、あの力の秘密、 解き明かしてみたいな。
とりあえず、この二つで分類終了。 PS C:\Users\ori> Get-Command -CommandType Cmdlet | Group-Object Verb | Sort-Object Count -Descending | % { $_.Group | % -Begin {$s=""} { $s += "| " + $_.Name + " | " + (get-help $_).Synopsis + "|`n" } { "-"…
前回も思ったけど今回はさらにスパムっぽいな...。前回のCmdLetを名詞で分類したものをさらに、見やすくしようとはてなで表で表示するにした。動詞で分類するのは、次のエントリー。下記で生成した文字列を、貼付け。 PS C:\Users\ori> Get-Command -Command…
CmdLetを、Nounプロパティで分類してみた。 PS C:\Users\mono> Get-Command -CommandType Cmdlet | Group-Object Noun | Sort-Object Count -Descending Count Name Group ----- ---- ----- 9 Object {Compare-Object, ForEach-Object, Group-Object, Measur…
PowerShellのコマンドレットを眺めてたら、 Get-HotFixなるコマンドを発見。以前、Get-WmiObject うんたらかんたらとして、 Hotfix一覧を取り出したのに...。PowerShellのコマンドレットは、全体的にリモート コンピュータに適用することが考えられているよ…
便利なことに、短い文字がエイリアスで割り当てられてる Mapは%。%自体はForEach-Objectの別名。 例 > # カレントフォルダ以下のファイル名一覧 > Get-ChildItem -Recurse | % { $_.FullName } Filterは?。?も同じくWhere-Objectの別名 例 > # カレントフォ…