【发布时间】:2018-12-21 21:26:35
【问题描述】:
我已经尝试解决这个问题大约 4 小时。
我创建了一个 windows .bat 文件,通过在其上拖动一个文件,该文件负责将其复制到一个目录中,然后打开复制的文件。
我正在尝试在 mac os x 上做通常的事情,但不幸的是它不起作用。
我创建了一个转换为 .app 的脚本脚本,该脚本在打开时会打开 firefox 浏览器。一切正常。
当我转到我的文件时会出现问题,一个简单的 .xml,我说用我创建的 .app 打开它,或者只是将文件拖到应用程序上。 浏览器当然会打开,但是我需要打开firefox,打开的url就是拖拽文件的路径。
我已经尝试了所有可能的 $0 $1 等,但我在 .app 存档中获得了我的脚本脚本的路径,而不是拖到应用程序上的文件路径。
Windows
@echo off
Title TEST
Mode con cols=90 lines=5
COPY /D "%~1" "C:\PA\"
IF [%1] EQU [] Goto:Error
CD /D "%~1">nul 2>&1 && Goto:Explorer_Folder || Goto :OpenFile
Exit /b
:OpenFile <File>
Start "Drag and Drop" "firefox.exe" "C:\PA\%~nx1"
Exit /b
:Explorer_Folder <Folder>
Explorer "%~1"
Exit /b
:Error
Color 0F & echo(
ECHO error
Timeout /T 5 /NoBreak >nul
Exit /b
操作系统
#!/bin/bash
BASEDIR=$(dirname "$0")
open -a Firefox $BASEDIR
这个打开firefox,但是用我的.app目录打开
谢谢大家
【问题讨论】:
-
有关 [macos] 的问题最好在相关的 stackexchange 网站上提出,该网站有关于此主题的问答 how-do-i-make-a-bash-script-so-that-i-can-drag-its-input-on-top-of-the-icon
-
我认为您需要从 Automator 脚本开始,然后该脚本可以运行您的 bash 脚本。我认为关键是拥有
on run{input,parameters},它可以让您获取应用程序上删除的内容的名称,然后您可以调用do shell script XYZ来执行您的应用程序最初要执行的任何操作。这里的例子...stackoverflow.com/a/36820104/2836621
标签: macos shell batch-file