ドラッグ&ドロップでファイルを渡すバッチをMacで作るには?

Macでバッチファイルといえばcommandファイルですが、ファイルを指定して何かをさせたい時ってよくあると思います。

直接ファイル名書き込んじゃいますか?
これだと対象のファイルが変わった時が面倒です。

それともターミナルから引数で渡しますか?
いちいち打ち込むのが面倒です。

Windowsのバッチファイルの場合はファイルをドラッグ&ドロップして直接渡す作りにすることができます。これならキーボードを使いませんし、一度にたくさんのファイルを処理させたい時に便利です。
Macでも同じことがしたい!調べてみました。

スポンサーリンク

commandファイルはファイルを受け取れない

渡されたファイルのフルパスを読み取る方法を調べればいいのかと思っていたら、なんと、commandファイルに他のファイルをドラッグ&ドロップすることができないじゃありませんか!
ということはcommandファイルでは実現不可能なようです。
キーボード入力からは逃れられないんでしょうか?

そんなことはありませんでした。

Automatorでアプリ化しよう

アプリケーション(.app)ならばファイルをドラッグ&ドロップして渡すことができます。
Macならばもともと入っている、Automatorを使用すると簡単にcommandファイルをアプリ化することができました。

アプリの作り方

Automatorを起動したら新規作成します。

Automatorキャプチャ

「書類の種類」はアプリケーションを選びます。

Automatorキャプチャ

使用するアクションを選ばないといけないので、「シェルスクリプト」で検索して「シェルスクリプトを実行」をピックアップしましょう。
出てきたら、右のエリアにドラック&ドロップします。

Automatorキャプチャ

すると下のようなウィンドウ?が表示されるので、「入力の引渡し方法」を「引数として」にしましょう。

Automatorキャプチャ

ここまで操作すると自動でシェルスクリプトのソースが生成されます。
あとは、生成されたfor文内にcommandで処理するはずだったコードを移し、ファイル名を指す箇所を「$f」(ドラッグ&ドロップして渡すファイルのフルパスが入ってます)に置き換えて、保存したら出来上がりです!

いろんなファイルをサクサク渡せるバッチファイルを作りたくなったら、ぜひ試してみてくださいな。

コメント

スポンサーリンク