Mac用户需要一些文件夹帮助AppleScript。 SFW

时间:2009-06-25 23:08:56

标签: macos terminal applescript

我有一个装满图片的文件夹,我需要使用applescript创建所有图像名称的文本文件。是否有一些方法与Applescript读取所有文件名,大约有10k,然后将其输出到文本文件?任何帮助都会很棒!谢谢你的阅读。

3 个答案:

答案 0 :(得分:5)

为什么不从终端做到。

ls> pix.txt

答案 1 :(得分:1)

以下Applescript会将文件夹中文件的名称写入文本文件:

property theFolder : "File:Path:To:theFolder:"

tell application "Finder"

    -- Create text file on desktop to write filenames to
    make new file at desktop with properties {name:"theFile.txt"}
    set theFile to the result as alias
    set openFile to open for access theFile with write permission

    -- Read file names and write to text file
    set theFiles to every item of folder theFolder
    repeat with i in theFiles
        set fileName to name of i
        write fileName & "
" to openFile starting at eof
    end repeat

    close access openFile

end tell

答案 2 :(得分:1)

在打开文件进行访问之前,您无需创建文件。你可以做到

set theFile to (theFolder & "thefile.txt")as string
set openFile to open for access theFile with write permission

当然,如果该文件存在,它将覆盖它。你可以用

set thefile to choose file name with prompt "name the output file"

'选择文件名'返回路径而不创建文件,并询问用户是否要在文件存在时覆盖。

你也可以使用'return'来换行,这会使代码更整洁:

write fileName & return to openFile

当然,如果您想要一种简单而优雅的方式,那么命令就是您需要的地方。

ls>thefile.txt

在此示例中,'>'将ls(list directory)命令的输出写入文件。你可以在一个AppleScript中运行它

set thePosixDrectory to posix path of file thedirectory of app "Finder"
set theposixResults to posix path of file theresultfile of app "Finder"
do shell script ("ls \"" & thePosixDrectory & "\">\"" & theposixResults & "\"")as string

posix路径的东西是将applescript样式directory:paths:to your:files转换为unix样式/directory/paths/to\ your/files

请注意,实际运行的shell脚本如下所示:

ls "/some/directory/path/">"/some/file/path.txt"

引号是为了阻止空格或其他时髦字符混淆shell脚本。为了阻止引号在applescript中被读作引号,反斜杠被用来“逃避”它们。您也可以使用单引号,以获得更具可读性的代码:

将shell脚本(“ls'”& thePosixDrectory&“'>'”& theposixResults&“'”)作为字符串

将出现在shell中,如

 ls '/some/directory/path/'>'/some/file/path.txt'

HTH