有没有办法获取当前电脑壁纸的文件名?
壁纸文件夹内有2000张图片,设置电脑壁纸在该文件夹内随机展示。经常在换到某一张壁纸的时候需要去寻找到源文件,尝试过许多方法都不行。(有一种方法是通过终端命令,但是一旦输入就会立即随机到下一张壁纸,这是没意义的,我需要的是当前显示的这一张的文件名)请问有没有高手能过做到?谢谢!
MacBook Pro
壁纸文件夹内有2000张图片,设置电脑壁纸在该文件夹内随机展示。经常在换到某一张壁纸的时候需要去寻找到源文件,尝试过许多方法都不行。(有一种方法是通过终端命令,但是一旦输入就会立即随机到下一张壁纸,这是没意义的,我需要的是当前显示的这一张的文件名)请问有没有高手能过做到?谢谢!
MacBook Pro
前面Sariel前辈写的AppleScript(tell application "Finder")我在iMac 10.15上运行成功了,但是新的MBP M1 Pro和MBA 2019上的新系统就是不行,报错 error "無法取得「displayed name of missing value」。" number -1728 from displayed name of missing value。
想再问一下您的这个/usr/bin/sqlite3 -readonly ~/Library/Application\ Support/Dock/desktoppicture.db 'SELECT * FROM data ORDER BY rowID DESC LIMIT 1 OFFSET 1;' 这个命令具体如何运行使用呢?
建立了一个.command文件,输入 OFFSET 0 命令,得到了正确结果。虽然没有 AppleScript 的 reveal theDesktopPic 那么直接那么酷,还要再自己复制终端结果再次搜索一遍(Finder搜索还挺麻烦的)找到对应文件,但是确实解决了我的提问。感谢您的正确答案。
如果 AppleScript 没法找到“随机壁纸”的模块的话来解决这个问题的话,就只能这样通过这个.command解决了,不知道 Terminal 能不能在取得这个 OFFSET 0 命令的结果后,能像 AppleScript 的 reveal 那样直接打开 Finder 并直接定位到文件呢?如果那样的话就完美了。
再次感谢前辈大神对小白的耐心教导。😄
感谢回复。我正文中说了知道这个命令,但是并不解决问题。一执行就立即重新随机到另一张新的壁纸了。而文件名一长串巨大的字符始终横挡在屏幕正中间使他无法作为默认状态长期留存做日常使用。除非这串字符可以以很小的字号显示在屏幕边缘还可以。
感谢回复。
macOS 13, 兩個我都運行成功了.
12.4 也成功
这个我没有试。不过应该是不行了,因为从后面的搜索看,至少 Mojave 之后,这个管理的方式变了,而且每个版本都有变化。
请问是不是打开 AppleScript - 新建,粘贴代码,直接点击右上角的三角运行?
请问 /usr/bin/sqlite3 -readonly ~/Library/Application\ Support/Dock/desktoppicture.db 'SELECT * FROM data ORDER BY rowID DESC LIMIT 1 OFFSET 1;' 这个命令如何运行?是Terminal 还是 AppleScript?
terminal
Sariel说的对。
另外,一看就不是说“人话“的一般是Termianl中的命令,读上去类似自然语言的是 AppleScripts.
我覺得AppleScript 比 terminal 更不像人話...
O(∩_∩)O哈哈~
先复制这一条命令,然后打开 Terminal,在窗口中粘贴,回车确认运行即可。
如果还有疑问,可以参考 B 站视频:把Mac终端命令用起来-命令:复制、粘贴和拖拽
“我可能会从我的建议或链接得到财务,或者其它形式的补偿 [经过版主编辑]”
原贴中有两个命令的,第一个的是文件名(OFFSET 0),第二个是文件夹目录(OFFSET 1),你只用了第二个?
的确,无论是 Mac 还是 Windows 系统,当然包括还有各种类 Unix 系统,通过几个简单的命令就可以控制、改变系统或完成任务是着实令人沉迷的一种经历。
有没有办法获取当前电脑壁纸的文件名?