2

スクリーンショットを撮り、画像をデスクトップに保存し、日付という名前を付けるスクリプトを作成しようとしています。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
4

4 に答える 4

4

上記のパスを渡す適切な方法は、次の引用形式を使用することです。

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
于 2013-05-29T00:07:44.960 に答える
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.

于 2013-05-28T17:47:45.520 に答える
1

次のようなシェルコマンドを使用するだけです:

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 を使用する場合、run ハンドラは必要なく、/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 がパス名の区切り記号としてコロンを使用しているためです。:in shells/は Finder のように表示され、その逆も同様です。

于 2013-05-29T01:45:44.480 に答える