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