前回までの解説で、ウインドウを指定した場所に指定したサイズで配置できるようにした。今回は、そのスクリプトを使って、アプリケーションの配置を自動で行うスクリプトを作成する。
今回やることは簡単だ。配置したいアプリケーションを起動し、起動したアプリケーションを前回までに作成したPowerShellスクリプトを使って配置するだけである。これを繰り返す処理をスクリプトにまとめれば、完成だ。
アプリケーションの起動と配置を行うスクリプト
先に、完成したスクリプト「deploy_001.ps1」を掲載しておく。
#!/usr/bin/env pwsh
#====================================================================
# アプリケーション起動とデプロイ
#====================================================================
# マイナビニュース 企業IT 新着記事一覧
$cmd='C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe'
$url='https://news.mynavi.jp/list/headline/business/enterprise/'
& $cmd --new-window $url
Sleep 1
window_deploy "*" "新着記事.*" 100 0 1200 800
# マイナビニュース IT Search+
$cmd='C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe'
$url='https://news.mynavi.jp/itsearch/'
& $cmd --new-window $url
Sleep 1
window_deploy "*" "TECH+.*" 100 800 1200 600
# Windows Terminal
wt
Sleep 1
window_deploy WindowsTerminal ".*" -50 0 1200 1100
# メモ帳
notepad
Sleep 1
window_deploy notepad ".*" -50 -40 1200 300
実行例も見ておこう。次のように何もない状態で、作成したスクリプトを実行する。
実行するとアプリケーションが起動し、指定した場所に配置されて、最終的に次のような画面になる。
仕事をする際、”好みのアプリケーション配置”は何となく決まってくるものだ。これをある程度数値化してスクリプトにまとめてしまえば、自動的に用意できるようになる。毎回毎回、手動で起動して配置するのと、スクリプトでサッと準備できるのとでは、時短につながることはもちろん、爽快さが違うというものだ。
スクリプトの説明
このスクリプトは、次の処理を繰り返しているだけだ。
- アプリケーションを起動
- 1秒待機
- 起動したアプリケーションを再配置
例えば、最初の処理は次のようになっている。
# マイナビニュース 企業IT 新着記事一覧
$cmd='C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe'
$url='https://news.mynavi.jp/list/headline/business/enterprise/'
& $cmd --new-window $url
Sleep 1
window_deploy "*" "新着記事.*" 100 0 1200 800
このうち、アプリケーションを起動しているのは次の部分だ。
$cmd='C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe'
$url='https://news.mynavi.jp/list/headline/business/enterprise/'
& $cmd --new-window $url
1行が長くなってしまうのでこのように書いているが、基本的には次のように実行しているのと同じだ。
& 'C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe' --new-window 'https://news.mynavi.jp/list/headline/business/enterprise/'
「&」から記述された行はその後の文字列をコマンドの起動として解釈する。上記の場合、Microsoft Edgeが起動するようになる。「—new-window」オプションは「新規ウインドウで起動する」という指定で、さらにURLが指定してあるので、指定したURLがオープンされる。
コマンドラインからアプリケーションを起動する方法はアプリケーションごとにさまざまなので、この部分は自分で調べて使えるようになるしかない。
そしてアプリケーションを起動したら、次のように1秒間待機してから次の処理へ移っている。「Sleep 1」が待機部分だ。Microsoft Edgeを起動しても、起動されたEdgeが指定されたURLを開くまでには時間がかかる。指定されたURLを開かないとEdgeのウインドウタイトルが設定されない。ウインドウタイトルが設定されないと、前回までに作成したスクリプトでEdgeを特定することができない。このため、Edgeがページの読み込みを終えるまでの時間として1秒間待機している。
Sleep 1
window_deploy "*" "新着記事.*" 100 0 1200 800
ページの読み込みが終わった後、「window_deploy “*” “新着記事.*” 100 0 1200 800」で起動したEdgeのサイズ変更と再配置を行っている。これで最初のアプリケーションの起動と再配置が完了だ。先ほどのスクリプトは、この処理を配置したいアプリケーション分だけ繰り返し実行しているだけである。
待機時間は使っているPCの性能やネットワークの速度、状態などによって左右される。読み込みが完了するまでもっと時間がかかるなら時間を長めに設定すればよいし、早く完了するなら「Sleep 0.1」のように短い時間を指定すればよい。
シンプルだが効果的なスクリプト
前回までに作成した「window_deploy.ps1」も、今回取り上げたdeploy_001.ps1も、それほど複雑なPowerShellスクリプトではない。必要最小限の機能だけを実装した短いスクリプトだが、それでもここまでの操作ができる。
人がPCで繰り返し行っている操作には、今回のように簡単に自動化できるものがある。一つ一つのスクリプト化で得られる短縮時間は数秒、数十秒かもしれないが、それが毎日毎日、そして1日のなかで何回も発生するとなると、効率化が効いてくる。
PowerShellスクリプトは、Windowsの操作を高速化するのに役立つ多くの機能を提供してくれる。少しずつでもPowerShellの活用に取り組むことは、Windowsと付き合っていく上で意義があるのである。