我已经使用 XCODE 创建了一个适用于 MACOS 的命令行应用程序。
这是一个简单的 C 程序,接受作为 ARGV 传递到命令行的文件名。
我的问题是:如何在创建的可执行文件上启用拖放功能,以便只需将罚款拖动到可执行文件即可传递 ARGC 参数?
最佳答案
当您创建一个简单的可执行命令行程序时,当您将文件拖放到其上时,macOS 并不知道您想要做什么。您需要做的是创建一个合适的 macOS 应用程序。
要这样做:
- 打开Automator.app
- 创建一个新的应用程序
- 从左侧将运行 Shell 脚本拖至右侧 Pane
- 选择将输入→作为参数传递
作为脚本内容,输入:
/path/to/test "$@"
哪里
/path/to/test
是 C 可执行文件的实际路径。将应用程序保存在您喜欢的任何位置。
将文件拖到新创建的 .app
上后,它只会调用您的 C 可执行文件并将文件名作为第一个参数传递,或者,如果文件很多,则传递所有文件。
举个例子,我做了一个小的Python脚本~/Desktop/test.py
,它需要可执行( chmod +x ~/Desktop/test.py
):
#!/usr/bin/env python
import sys
print("Running a script with " + str(sys.argv[1:])
然后我创建了以下 Automator 操作:
它的作用是捕获 Python 脚本的输出,并在脚本完成后显示包含该输出的通知。所以当我拖动 test.py
文件到 .app
,我得到这个输出:
关于macos - 通过拖动到 macOS 中的命令行应用程序来传递 C 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57064400/