【发布时间】:2015-04-07 19:43:46
【问题描述】:
我有一个 Automator 工作流,它利用这个 shell 脚本来获取承载通过这个工作流运行的文件的目录的名称。稍后我将该目录名称作为文件的注释。
for f in "$@"
do
filepath=$(dirname "$f")
dirname=$(basename "$filepath")
echo "$dirname"
done
不过,每当我向它抛出多个文件时,目录名称都不会被反映一次(如我所愿),而是会多次反映我丢弃的许多文件。这随后会多次添加相同的评论。
我该如何解决这个问题?
编辑:
我想尝试消除 Automator 并单独使用 Applescript + Shell。
如何让 shell 返回目录名称?现在它只是在对话框中给我$dirname...
on adding folder items to theWatchedFolder after receiving theDetectedItems
set dirName to do shell script "for f in '$@'
do
filepath=$(dirname '$f')
dirname=$(basename '$filepath')
echo '$dirname'
done"
display alert dirName
end adding folder items to
【问题讨论】:
-
它必须这样做,因为如果您传递多个文件夹名称,每个文件夹都可能有不同的父级。一定?你希望它做什么?
-
那么我的整个方法可能是错误的......我想要的是每个文件都被单独处理并分配其唯一的注释(只有它的父文件夹名称)。但我希望能够批处理文件,我可以在工作流程中删除所有文件,并且每个文件都按照此处所述进行操作。 ...那我的选择是什么?
-
我修改了我的方法以排除 Automator 并选择 Applescript...
标签: shell applescript