見出し画像

ZIPでファイル圧縮をしよう! 【3】

みなさんこんにちは。いつになったら完成するかわからない本シリーズ、3回めとなります。前回のエントリーはこちら。


前回は、話が脱線したほかは(笑)、本ZIP圧縮プログラム(Automatorアクション)の組み立てをイメージする、ということだけやってみました。もう少し掘り下げてみます。

1】目的のファイルを選択すると同時に、フルパスを取得
 ↓
2】このオリジナルファイルのフルパスは専用の変数に保持(そのままシェルコマンドに渡す文字列として使える「はず」※注
 ↓
3】新たなZIP生成用のパスを組み立てるため、上のオリジナルパスを、パス部分とファイル名部分に分解して変数に保持
 ↓
4】ファイル名部分を、拡張子とそれ以前の名称部分とに分解して、それぞれ変数に保持(名称部分だけでもかまわない)
 ↓
5】ZIP生成用パスを、先のパス部分と、ファイル名称と新しい拡張子(.zip)とで連結して組み立てる
 ↓
6】最後に、オリジナルパスと、作成したZIP生成用パスをシェルコマンドへ渡す

ざっとこんな感じになるかと思います。では実際に手を動かしていきましょう。


Automatorにおける変数定義

いろいろと偉そうに言っている私ですけども、この点に関してはまったく知らなかったというか、イチから学ぶ必要があるのです。

世の中に多数あるプログラミング言語において、変数定義と、値の代入については、大概が等号「=(イコール記号)」を使うことになっている、という話はだいぶ前のエントリーでしました。

自分で自由に決めた変数名と代入、そこからの値の取得は Automator でも可能なんですよ。ただその操作・作法については、実は私もこのシリーズを書くにあたって初めて知ることなんです。ですので、みなさんと一緒に勉強していきたいと思っています。


基本は「表示させて確認」。ゲットしてセット

プログラミング言語には組み込み変数と呼ばれる、汎用性の高い、固定的な値を返して(見せて)くれる変数があらかじめ用意されているものです。

例えば今日の日付や現在時刻、なんてそうですね。特定の環境での動作を期待する時にOSのバージョンなども。よく使われる、またはすぐに取得したいこういう値はすでに定義済みだったりします。

ふっふっふ、そこからすでに Automator にもきっちり備わっているのですよみなさん…



では早速、定義済みの変数を使ってみましょう。変化がわかりやすい現在時刻を表示させてみます。

ここでは実験なので、新規書類を開いたら「ワークフロー」を選択します。そして窓の左のペインの上部を見ます。「アクション」の横に「変数」のボタンがありますね。

それをクリックすると、カテゴリに分かれています。「日付と時刻」を選択すると、右隣に項目別の変数が見えます。「現在の時刻」を、アクションの配置と同じように、右側の空のペインにドラッグします。

スクリーンショット 2021-07-19 15.38.06

( 画像一枚で説明しようとして恐縮です💦 )

そのあと、この時刻の変数は「変数の値を取得」アクションに組み込まれた状態で現れます。「結果」の小さなボタンをクリックして開いておき、窓の右上の「実行」ボタンを押してみましょう。「結果」の小窓に時刻が表示されるはず。

もちろんこの結果は、刻々と変化する時刻をそのまま見せてくれ、実行ボタンを押すたび変わるのですが、デフォルトでは秒の表示がありません。それをある程度好みのものに編集する方法も、上の画像に見えています。

秒単位で変化が見えないと、試し辛いですもんね。

窓の一番下に、小さなアイコンが並んでいるはずです(画像では薄青のダイアログ下に隠れている)。おそらく最初は「ログ」が表示されていたと思いますが、その隣は「変数」なので押してください。左のペインからドラッグしてきた変数は全てここにリストされます。

先程の「現在の時刻」が見えていますね。その上で右クリック(ctl + クリック)し、「編集...」とあるメニューを選択。この変数オプションで秒を表示するフォーマットにしてみます。そこまでやって実行したのが上の画像というわけです。



ここまで見てもらってもわかるとおり、プログラミングというのは、どこかから値を取得してきて(ゲット<get>)、何かしらの変数に代入(セット<set>)、さらに関数等を経て目的の操作を実行、の繰り返しのようなものです。

get や set の動作を基本的な機能としてその場限りの代入ではなく、再利用しやすくするため関数として独立させたものをそれぞれ、ゲッター関数、セッター関数などと呼ぶことがあります。プログラミングにおける通念として一般的なので、覚えておくといいでしょう。



この記事シリーズは、長くなったとしても、一つ一つの操作を積み上げていく過程を楽しんでもらいたいと思います。

今回はここまで。次回は、自分で変数名を設定・定義し、選択したファイルのパスを取得するところから始めましょう。




この記事が気に入ったらサポートをしてみませんか?