Powershell」カテゴリーアーカイブ

PowerShellスクリプトをダブルクリックで実行する

PowerShellスクリプトは*.ps1形式というファイルに保存できますが、このファイルをダブルクリックしてもスクリプトは実行されません。

デフォルトの関連付けがメモ帳だからかと思いましたが、PowerShellの実行ファイルと関連付けをしてもうまく動いてくれません。この場合、別途ps1ファイルへのショートカットを作って、ショートカット経由で実行するとダブルクリックで動かせます。

PowerShellスクリプトへのショートカットを作成する

[@IT]

任意のタイミングで実行するタイプのスクリプトはこの方法で実行できるようにしておくと便利です。

Powershellでファイルをくじ引きする

ちょっと事情がございまして、何らかのプログラムで”特定のフォルダ内にあるテキストファイルをランダムに開く”方法を考えなければならなくなりました。

ネットで調べてみると抽選ツールといった名称でフリーソフトが色々あるのですが、今回はPCの制約上Windows付属の機能で実現しなくてはならないそうです。

そこで、不慣れながらPowershellでできないかを試してみました。

できあがったのがこれです。

$File = Get-ChildItem C:\lotto\*.* -Include *.txt | Get-Random
Invoke-Item $File

  1. Cドライブ直下に抽選用のlottoという名称のフォルダを作り、くじに相当するテキストファイルを入れておきます。
  2. プログラムはGet-ChildItemコマンドレットでlottoフォルダ内のテキストファイルをリスト化します。(-Include *.txtは要らないかと思いましたがくじ以外の物が保存されていると困るので念のためです)
  3. Get-Randomコマンドレットでランダムにリストから抽出が行われ、変数$Fileに格納されます。
  4. 2行目のInvoke-Itemで$Fileに格納したファイルを実行します。関連付けされている既定のプログラムで開く動作をします。

要は実行するとフォルダ内のテキストファイルをランダムにメモ帳で開いてくれるというだけです。あまり抽選めいた派手さはないですが、これでOKだと思います。

Powershellは今回初めて調べてみたのですが、ファイル管理などには有用そうな機能が色々あります。知っていると色々楽ができそうなのでおいおい自習しようかと思っています。