ちょっと事情がございまして、何らかのプログラムで”特定のフォルダ内にあるテキストファイルをランダムに開く”方法を考えなければならなくなりました。
ネットで調べてみると抽選ツールといった名称でフリーソフトが色々あるのですが、今回はPCの制約上Windows付属の機能で実現しなくてはならないそうです。
そこで、不慣れながらPowershellでできないかを試してみました。
できあがったのがこれです。
$File = Get-ChildItem C:\lotto\*.* -Include *.txt | Get-Random
Invoke-Item $File
- Cドライブ直下に抽選用のlottoという名称のフォルダを作り、くじに相当するテキストファイルを入れておきます。
- プログラムはGet-ChildItemコマンドレットでlottoフォルダ内のテキストファイルをリスト化します。(-Include *.txtは要らないかと思いましたがくじ以外の物が保存されていると困るので念のためです)
- Get-Randomコマンドレットでランダムにリストから抽出が行われ、変数$Fileに格納されます。
- 2行目のInvoke-Itemで$Fileに格納したファイルを実行します。関連付けされている既定のプログラムで開く動作をします。
要は実行するとフォルダ内のテキストファイルをランダムにメモ帳で開いてくれるというだけです。あまり抽選めいた派手さはないですが、これでOKだと思います。
Powershellは今回初めて調べてみたのですが、ファイル管理などには有用そうな機能が色々あります。知っていると色々楽ができそうなのでおいおい自習しようかと思っています。