求Mac等效Windows BAT脚本:提取JPG文件名并随机排序存为TXT
Mac 实现提取JPG文件名并随机排序存TXT的两种方案
方案1:Shell脚本(简单直接,适合快速使用)
- 打开「文本编辑」,新建空白文档,粘贴以下代码:
#!/bin/bash # 提取当前文件夹下所有jpg/JPG格式的文件名,随机排序后写入TXT ls -1 *.jpg *.JPG 2>/dev/null | grep -v "^$" | sort -R > 随机图片列表.txt
- 保存文件:命名为「生成随机图片列表.sh」,保存时选择「格式」为「纯文本」(不要选RTF)。
- 赋予执行权限:打开「终端」,切换到脚本所在的文件夹(比如
cd ~/Desktop),输入命令:chmod +x 生成随机图片列表.sh - 使用方法:把这个脚本文件放到要处理的图片文件夹里,双击运行(或者在终端里进入该文件夹后输入
./生成随机图片列表.sh),同目录会生成「随机图片列表.txt」。
说明:
ls -1让文件名每行显示一个;*.jpg *.JPG覆盖大小写的JPG文件;2>/dev/null忽略找不到对应文件的错误提示;sort -R实现随机排序。
方案2:AppleScript应用(无需终端,可视化操作)
- 打开「脚本编辑器」(在Launchpad的「其他」文件夹里),粘贴以下代码:
set targetFolder to choose folder with prompt "选择要处理的图片文件夹" set fileList to {} tell application "Finder" set jpgFiles to every file of targetFolder whose name ends with ".jpg" or name ends with ".JPG" repeat with aFile in jpgFiles set end of fileList to name of aFile end repeat end tell -- 对文件名列表随机排序 set shuffledList to shuffleList(fileList) -- 将排序后的列表写入TXT文件 set outputPath to POSIX path of targetFolder & "随机图片列表.txt" set fileRef to open for access outputPath with write permission write (shuffledList as text) to fileRef starting at eof close access fileRef display dialog "已生成「随机图片列表.txt」" buttons {"确定"} default button 1 -- 随机排序的辅助函数 on shuffleList(inputList) set listLength to length of inputList if listLength ≤ 1 then return inputList set shuffled to {} repeat while length of inputList > 0 set randomIndex to random number from 1 to length of inputList set end of shuffled to item randomIndex of inputList set inputList to items 1 thru (randomIndex - 1) of inputList & items (randomIndex + 1) thru end of inputList end repeat return shuffled end shuffleList
- 测试运行:点击脚本编辑器工具栏的「运行」按钮,选择目标图片文件夹,完成后会弹窗提示,文件夹里会生成对应TXT文件。
- 保存为应用:点击菜单「文件」→「导出」,格式选择「应用程序」,命名比如「随机图片列表生成器」,以后双击这个应用就能直接用,不用打开脚本编辑器。
内容的提问来源于stack exchange,提问作者Magnus
相关产品推荐
相关产品推荐

