ステップ記録ツールからスクリーンショットを取り出し作業を自動化するzip編【AutoHotkey】。
これまでのお話。
作業手順の記録のために必要なスクリーンショットをできるだけ簡単に手に入れるためにステップ記録ツールを試してみたのでした。
その後難儀しながらも mht ファイルから画像を取り出すところまでは成功しました。
意外と取り出す作業が煩雑であんまり省力化できていないことに気がつき 、あれ以来スクリーンショットが記事に現れることはなくなりました。
本末転倒。
そこで少しでも手順を 減らすためにファイル展開作業を自動化してみようと思いました。
前提条件。
前提として、c:\temp\psr\ディレクトリが作成してあり、ステップ記録ツールの保存データがc:\temp\psr\psr.zipで用意されているものとします。
このディレクトリは、ZIP ファイルの 展開など様々な作業を行うワーキングディレクトリにします。ファイルが作成されたり削除されたりしますので大切なファイルは置かないことにします。
zip展開する出力先はc:\temp\psr\ディレクトリとします。
コマンドプロンプトからの操作。
ステップ記録ツールの保存データは ZIP 形式です。
7zipコマンドで展開します。
展開する時はxコマンド、出力先のオプション指定は-o、同じ名前のファイルがあった時は上書きするオプションは-yです。
C:\Users\yas>"C:\Program Files (x86)\7-Zip\7z.exe" x \temp\psr\psr.zip -o\temp\psr\ -y 7-Zip 18.06 (x86) : Copyright (c) 1999-2018 Igor Pavlov : 2018-12-30 Scanning the drive for archives: 1 file, 102459 bytes (101 KiB) Extracting archive: \temp\psr\psr.zip -- Path = \temp\psr\psr.zip Type = zip Physical Size = 102459 Everything is Ok Size: 189115 Compressed: 102459
これでmht ファイルが取り出せます。
しかしながら、ファイル名が記録日時を元に作成されているので、こちら側は処理すべきファイル名を判別できません。
そこで ZIP のリスト取得でZIP アーカイブされているファイル一覧を取得します。
C:\Users\yas>"C:\Program Files (x86)\7-Zip\7z.exe" l \temp\psr\psr.zip 7-Zip 18.06 (x86) : Copyright (c) 1999-2018 Igor Pavlov : 2018-12-30 Scanning the drive for archives: 1 file, 102459 bytes (101 KiB) Listing archive: \temp\psr\psr.zip -- Path = \temp\psr\psr.zip Type = zip Physical Size = 102459 Date Time Attr Size Compressed Name ------------------- ----- ------------ ------------ ------------------------ 2019-06-02 11:03:00 ....A 189115 102307 Recording_20190602_1104.mht ------------------- ----- ------------ ------------ ------------------------ 2019-06-02 11:03:00 189115 102307 1 files
出力結果にファイル名が含まれています。
ファイル名だけが欲しいんだけどなー。
この出力結果を標準出力から Ruby スクリプトに送って正規表現でファイル名を取り出せば良いか。
次のように二つのコマンドを縦棒で区切って実行すれば、縦棒の左側の結果を右側のコマンドに渡せるんですね。
パイプというんですけど。
"C:\Program Files (x86)\7-Zip\7z.exe" l \temp\psr\psr.zip | ruby "%USERPROFILE%\documents\autohotkey\ex\extractpsr.rb"
この二つのコマンドをバッチファイルにまとめるか。
なんだかもっといい方法がありそうですが、スキル不足ですね。
時間切れ。
今日の作業では ZIP を展開するので精一杯でした。
次回に取り出した mht ファイル処理をやりたいと思います。
今回はAutoHotkeyだけで実現できなかったので、バッチファイルや Ruby スクリプトにも頼っています。
すごく特殊で使いづらいので 参考出品、exディレクトリへの収録とします。