我尝试使用Automator创建一个简单的应用程序,此应用程序需要将特定文件夹中的所有txt文件合并到一个csv文件中。这是脚本:
cat *.txt >merged.csv
如果我打开终端,移动到包含文件的文件夹并执行它,这可以正常工作。
我希望尽可能让它作为应用程序工作,我在App Icon上拖动文件夹,然后在文件夹中创建合并文件。然后显示已完成工作的通知。
我试过了:
但它在shell中给我一个错误(在终端工作正常)。 我做错了什么?
答案 0 :(得分:1)
您需要更改Run Shell Script
操作以传递输入as arguments
- 然后当前所选Finder项的路径将作为$1
(...)传递。
在shell脚本中,您需要将(cd "$1"
)更改为传入的文件夹,以便在正确的位置执行合并命令。
我建议你让你的shell脚本更健壮,以确保(a)只传入文件夹(在Finder中当前选中)和(b)只是一个项目:
# Make sure that a _single folder_ is currently selected in Finder; exit otherwise.
[[ $# -eq 1 && -d "$1" ]] ||
{ osascript -e 'display alert "Please select a single folder."'; exit 1; }
# Change to the folder.
cd "$1" || exit
# Perform the merge command.
cat *.txt >merged.csv