11

私は Batch についてかなりの知識を持っています。バッチ スクリプトを Mac/UNIX に移植しようとしていますが、バッチ ファイルにドラッグ アンド ドロップ機能があります。数え切れないほどの Google 検索で、何も思いつきませんでした。彼らは皆、ターミナルウィンドウにドラッグアンドドロップできると言っています-入力を必要としないスクリプトには適していません.

私が持っているバッチのコードは次のとおりです。

cd %USERPROFILE%

7za x %* -o%USERPROFILE%\Desktop\Temp

7za a %1 %USERPROFILE%\Desktop\Temp\*

cd %USERPROFILE%\Desktop
rmdir /q /s Temp\

%USERPROFILE%7za コマンド (アーカイブ ユーティリティのため)、cd (ターミナルがユーザーのプロファイルで起動するため)、rmdircdなどは、基本的なファイル コマンドのみであるため、特に心配する必要はありません。しかし、.sh スクリプトでドロップ/オープンされたファイルを参照するコードがわかりません。

それで、誰かそのコードを知っているなら教えてください。これは簡単なことだと思いますが、特になじみのないプログラミング言語を扱う場合は、すべてのコマンドを知ることはできません。

4

2 に答える 2

16

生のスクリプトでドラッグ アンド ドロップされたファイルを受け入れる方法はわかりませんが、ドラッグ アンド ドロップを受け入れてファイルをスクリプトに渡す別の方法でスクリプトをラップする方法はいくつかあります。IMO で最も簡単なオプションは、Automator アプリケーションでスクリプトをラップすることです。/Applications/Automator.app を実行し、新しいプロジェクトのタイプとして [アプリケーション] を選択し、[シェル スクリプトの実行] アクションをアクション リスト (2 番目の列) からワークフロー (右の列) にドラッグし、その [入力を渡す] を "引数として」、シェル スクリプトに貼り付け、アプリを保存します。終わり。

シェル スクリプトをラップするその他のオプションには、AppleScriptPlatypus、およびDropScriptがあります。

于 2013-04-28T05:24:02.147 に答える
1

私はこれに遅れており、ドラッグアンドドロップの質問に対する答えさえありません. しかし、これは Windows 用のバッチ スクリプトのように見え、Unix シェルcmd.exeはまったく機能しません。したがって、最初に Bash 用に完全に書き直す必要があります。

  • "\" は Unix のエスケープ文字です。パス区切りは「/」です。
  • シェル変数は「%」ではなく「$」で始まります。また、Windows%USERPROFILE%変数は$HOMEUnix になります。
  • オプションは「/」ではなく「-」で始まります。
  • rmdir空のディレクトリのみを削除します。Windows コマンドに相当するオプションについては、man rmdirとを参照してください。man rm-f -rrmdir /q /s Temp

しかし、一度 Bash を学ぶと、その恐ろしいことを本当に嫌うようになることに注意してくださいcmd.exe:-)

于 2019-07-29T14:46:00.853 に答える