【问题标题】:Terminal Command into Applescript终端命令到 Applescript
【发布时间】:2016-01-31 23:37:51
【问题描述】:

我有以下想要使用 applescript 自动化的终端命令。我还想要一个命令来将目录 cd 到我想首先应用命令的文件夹。 cd 到保存 .pdf 文件的文件夹后。此代码查看文件名的第一个字母,并据此将文件排序到与文件的第一个字母相对应的字母文件夹中。

for x in `ls -1 | sed -e 's/^\(.\).*/\1/' | sort -u`; do
mv -i ${x}?* $x
done

我该怎么做呢?我是这方面的新手。任何见解将不胜感激。我愿意学习 Applescript,但是,我不确定从哪里开始实施。

谢谢

【问题讨论】:

    标签: terminal applescript


    【解决方案1】:

    试试这个:

    choose folder with prompt "Select the original folder" default location (path to documents folder)
    
    set folderPath to contents of result
    set folderPath to POSIX path of folderPath
    
    do shell script "for x in `ls -1 " & folderPath & " | sed -e 's/^\\(.\\).*/\\1/' | sort -u`; do destination=$(echo $x | tr '[:lower:]' '[:upper:]'); mkdir " & folderPath & "$destination; mv -i " & folderPath & "${x}?* " & folderPath & "$destination/; done"
    

    它忽略了大写,即:每个以a 和A 开头的文件都被移动到文件夹A/

    已编辑 1: 尝试创建目标文件夹,但如果它已经存在,则静默失败并将文件移动到该文件夹​​。

    编辑 2: 默认打开 Dropbox 文件夹:

    set dropboxFolder to (POSIX path of (path to home folder) & "Dropbox")
    choose folder with prompt "Select the original folder" default location (POSIX file dropboxFolder as alias)
    

    EDITRED 3: 最终脚本:

    set dropboxFolder to (POSIX path of (path to home folder) & "Dropbox")
    choose folder with prompt "Select the original folder" default location (POSIX file dropboxFolder as alias)
    
    set folderPath to contents of result
    set folderPath to POSIX path of folderPath
    
    do shell script "for x in `ls -1 " & folderPath & " | sed -e 's/^\\(.\\).*/\\1/' | sort -u`; do destination=$(echo $x | tr '[:lower:]' '[:upper:]'); mkdir " & folderPath & "$destination; mv -i " & folderPath & "${x}?* " & folderPath & "$destination/; done"
    

    【讨论】:

    • 这只是更改了文件名。它没有移动文件而不将其名称更改为文件名起始字母的文件夹。有什么想法吗?感谢您的回复
    • 我也尝试了以下方法,但似乎无法使其正常工作:do script "cd ~/desktop/hazel_organization/test/test1; for x in ls -1 | sed -e 's/ ^(.).*/\1/' | sort -u; do mv -i ${x}?* $x done" 谢谢
    • @JPaul 刚刚编辑,它现在移动到正确的文件夹,如果该文件夹不存在,则在移动文件之前创建它。希望对您有所帮助。
    • 实际上并没有忽略文件夹的大小写。如果我以小写字母开头文件夹,则会出错。它仍然会移动文件,但会产生一个错误,我可以退出 applescript。有什么想法吗。非常感谢您的帮助。
    • 我已成功将此应用到桌面上的文件夹,但当我尝试将其应用到 Dropbox 上的文件夹时,它不起作用。是否需要做一些特别的事情才能将此脚本应用到 Dropbox 上的文件夹?感谢您的所有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多