我正在尝试创建一个将拍摄屏幕截图的脚本,将图像保存到桌面,并将其命名为日期。类似于我使用cmd + shift + 3时会发生的情况。唯一的问题是图像的名称只是“屏幕”而不是我指定的整个名称。任何人都知道如何解决这个问题?
on run
set theDesktop to POSIX path of (path to desktop as string)
set theCurrentDate to current date
set shellCommand to "/usr/sbin/screencapture " & theDesktop & "Screen Shot" & theCurrentDate & ".png"
do shell script shellCommand
end run
答案 0 :(得分:3)
将完整的文件路径放在双引号中,如下所示:
on run
set theDesktop to POSIX path of (path to desktop as string)
set theCurrentDate to current date
set shellCommand to "/usr/sbin/screencapture \"" & theDesktop & "Screen Shot" & theCurrentDate & ".png\""
do shell script shellCommand
end run
文件名包含空格,因此,在您的版本中,命令行会将其解释为/usr/sbin/screencapture
的多个参数。
答案 1 :(得分:3)
通过上述路径的正确方法是使用引用形式:
on run
set theDesktop to POSIX path of (path to desktop as string)
set theCurrentDate to current date
set shellCommand to "/usr/sbin/screencapture " & quoted form of (theDesktop & "Screen Shot" & theCurrentDate & ".png")
do shell script shellCommand
end run
答案 2 :(得分:1)
我只是使用这样的shell命令:
screencapture -i ~/Desktop/$(date +%Y%m%d%H%M%S).png
-i
是交互模式(如⇧⌘4)。我的安装默认文件名格式如下:
date '+Screen Shot %Y-%m-%d at %-H.%M.%S %p.png'
请参阅man screencapture
和man strftime
。
如果您使用AppleScript,则不需要运行处理程序,默认情况下/usr/sbin/
位于路径上,您可以使用quoted form of
转义参数。
"Screen Shot " & (current date) & ".png"
do shell script "screencapture ~/Desktop/" & quoted form of result
如果文件名在Finder中看起来像Screen Shot Wednesday, May 29, 2013 4/47/15 AM.png
,那是因为HFS使用冒号作为路径名分隔符。 shell中的:
在Finder中显示为/
,反之亦然。
答案 3 :(得分:0)
模拟键盘:
-- Take Screenshot
tell application "System Events"
-- Shift-Command-3
key code 20 using {shift down, command down}
end tell
键码20与数字3相同
结果:
Screen Shot 2018-11-18 at 12.47.39 pm
完整的键控代码列表可在此处找到:
https://eastmanreference.com/complete-list-of-applescript-key-codes