業務改善!Windows PowerShell入門

Windows PowerShellで、とにかく楽をしたい!実際に仕事で楽になった事、便利になった事を紹介しつつ進めていきます。

PowerShell スクリプトファイルを配布しろ!#1

それは Powershellを覚えたての頃だった。

PowerShellスクリプトファイルってさ......

 

「何でダブルクリックで実行できんのや、このくそボケ!」

 

しかし、それは俺のPowerShell道へのロマンの始まりでもあった。

PowerShellには実行ポリシーというものが存在していて、セキュリティの観点から、例えば、上記のダブルクリックなどが即時実行できないようにされている。

 

よって、俺は悟った......。

ケースバイケースで、いかに趣向を凝らして、スクリプト実行するかということに重きをおくことが大切であるか!

 

まずはスタンスからいきたいと思う。

 

自分だけで使う場合

・好き勝手にしやがれ、文句あるか!

以上。

 

誰かに使ってもらう場合

・とにかく楽に実行してもらう。 

 Powershellをよく知らない人に使ってもらうときは、超重要!!

・必然的に自分のPC以外での使用となるので、実行ポリシーはRestrited(スクリプト実行不可)であるという前提で考える。

 

 

こんなところでしょう。

 

では、実際的な実行方法についてはどうか。

これは色々ある。

 

だが、まずは一番初めに俺が実践した方法を紹介したいと思う。

PowerShellを始めて間もない頃、初めて人に使ってもらったときの話。

 

「このソース全選択でコピーして、PowerShellのコンソールで右クリックしてちょんまげ。理由は聞いてくれるな。君もオトナだ、察してくれるだろ......。」

 

For($i = 0; $i -lt 10; $i++){
    Write-Host "俺マジださいんですけど、何か!"

 

あらかじめ、フォルダの中にスクリプトを書いたメモ帳(拡張子.txt)とWindows PowerShellのショートカットの2つを仕込んでおく。

 

とりあえず、シンプルにして、くそダサい方法!

スクリプト配布とは言えないが、へっ!これで実行ポリシーもクソもねえゼ。

 

f:id:acoustic_groove:20171111212716p:plain

 

PowerShell、イエーイ!

 

PowerShell スクリプトファイルを配布しろ!#2 に続く

 

こっちもやってるゼ。 

blog.hatena.ne.jp

PowerShell 拡張子ごとのファイル数を取得しろ!


 

 

PowerShellを覚えたての、今から3年前のこと。

資産管理台帳への記入業務があった。

 

その業務内容はこうだ。

 

「フォルダ内の拡張子ごとの大量のファイル数を調べて報告しやがれ!」

 

フォルダ構成はどえらい複雑で、まともにやったら、クソめんどくさいゼ!

そこで、俺はPowerShellの至宝、パイプラインを駆使して何とかしようとした。

 

$path = "C:¥hoge"
Dir $path -recurse | Group Extension -NoElement | Sort Count -desc

 

結果はこう出た。

 

Count Name
--------  --------
   98  .xls
   49  .pdf
   28  .txt

 


<コマンドレットのポイント>

・グルーピングして、並び替えをする。

 Group (Group-Object)

 Sort (Sort-Object)

何でグルーピングするか? 

 拡張子Extension

・並び替えの順番は?

 ファイル数の降順desc


 

ぬわんと!俺は無事にミッション完了した。 

と、同時に思った。

 

ん?何かSQLぽいゼ!

 

何だか面白くなってきやがった。

しかし、その後ある理由で、1年程PowerShellを使うことが無くなり、俺はPowerShell道から遠ざかっていったのであった。 

 

PowerShell、オーマイガッ!

 

こっちもやってるぜ。

 

acoustic-groove.hatenablog.com