WindowsマシンへZipファイルを渡すには – 3 – windowszipというPHPファイル

「WindowsマシンへZipファイルを渡すには」というエントリで、MacZip4Win.appを紹介しましたが、この度、新たなツールを見つけました。「mac-zip-windowsのwindowszip」です。
分かりにくいですね。githubのmac-zip-windowsサイトで公開されている「windowszip」という名前のPHPファイルが、mac標準のzipに変わって「ウィンドウズに渡しても文字化けしないで解凍できる」zipファイルを作成してくれるというものです。
使い方などの詳細は作者のブログ「MacBookを快適に!快適なマックライフを~」にありますので、そちらを参照すれば分かると思います。
実行ファイル「windowszip」のダウンロードもgithub経由でなくてもブログから直接ダウンロードできるようになっています。

「mac-zip-windowsのwindowszip」の特徴

特徴は、以下の通りです。

・ __MACOSXフォルダを作りません
・ .DS_storeファイルは圧縮対象外
・ 日本語ファイル、日本語フォルダはそのまま日本語で文字化けしません(UTF-8-MACからShiftJIS(CP932)に変換されます)
・ .txt拡張子は自動でWindows改行(CRLF)に変換して圧縮します
・ 圧縮対象のフォルダ・ファイルにWindowsの禁止文字が含まれていたら圧縮を中止して知らせます
・ フォルダ・ファイルでShiftJISに変換できない箇所を表示し圧縮を中止します

インストール

ダウンロードした「mac-zip-windows-master.zip」ファイルを解凍し、その中の‘windowszip’ファイルを任意の場所に置けばいいのですが、私は‘/usr/local/bin/’に置くことにしました。この時、‘windowszip’ファイルに実行権を付与しておくことを忘れないでください(ターミナルから’chmod +x /usr/local/bin/windowszip’のようにするのもいいでしょう。私は、カラムファイルブラウザでやりますが…)。

コマンドの構文

$ /usr/local/bin/windowszip ‘圧縮したいフォルダやファイル名’

引数としてファイル/フォルダ名を渡せばOKです。

automator.appを使ってワークフローを作る

作者のブログでは、mac標準機能の“サービス”を使ってFinder上で‘windowszip’を利用する方法が記載されていますが、私は“ワークフロー”にして、メニューエクストラのスクリプトメニューから実行することの方が好みです。従って、“ワークフロー”を作成することにしました。

作者のブログにある“サービス”と異なるのは先頭のステップで、Finder上の選択項目をシェルスクリプトの実行ステップへ引き渡すステップだけです。
“サービス”と“ワークフロー”の、Finder上の選択項目をシェルスクリプトの実行ステップへ引き渡す方法の違いは、こちらでも記載していますので参考にしてください。

使ってみての印象

処理が速いのでいいです。
Windowsの禁止文字やShiftJISに変換できない文字が含まれていると処理を中止するというのも、慣れればOKです。
MacZip4Win.appのように強制的にzipに入れてしまうというのもケースによってはありだと思っていますが、これはケースによって使い分けることにします。
未だHigh Sierra 10.13でもMacZip4Win.appは動いてくれますが、いつか動作しなくなることがあるかもしれません。その場合でも、この‘windowszip’は基本的にPHPのクラスファイルなので“動作しない”というようなことにはならないでしょう。OSレベルのエンコーディングの扱いが変更になるなどの大きな仕様変更がない限り、長期的に使っていけるだろうと思います。
perl、php、JavaScriptなどで誰か作ってくれないかと思っていましたので、本当に作者に感謝です。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中