デフォルトのスクリーンショットのファイル名を変更する


15

デフォルトのスクリーンショットのファイル名プレフィックス(Cmd-Shift-4スクリーンショットタイプ)をデフォルト以外のものに変更する方法はありますか?デフォルト名は次のようになります。

Screen Shot 2011-08-30 at 10.01.36 AM.png

しかし、私は次のようなものを使用したいと思います:

screenshot_2011-08-30_100136.png

ターミナルでファイルを掘り下げるのは面倒なので、基本的にはスペースとジャンクを削除できます。defaults write com.apple.screencaptureスタイルコマンドの1つでこのプレフィックスを変更する簡単な方法はありますか?


2
あなたに合った答えを選択できる可能性はありますか?(またはあなたが探しているものをよりよく知るための編集?)
bmike

回答:


11

次のコマンドで「スクリーンショット」を「スクリーンショット」に変更できます

defaults write com.apple.screencapture name screenshot
killall SystemUIServer

ターミナルをもう少し掘り下げたい場合は、次の操作を行うことで目的を達成できます。

注:間違えた場合に備えて、変更したファイルのバックアップを作成してください。

  1. cd /System/Library/CoreServices/SystemUIServer.app/Contents/Resources/English.lproj
  2. 既存のファイルのコピーを作成します。
    sudo cp ScreenCapture.strings ScreenCapture.strings.old
  3. プロンプトが表示されたら管理者パスワードを入力します
  4. 編集可能な形式に変換します。
    sudo plutil -convert xml1 ScreenCapture.strings
  5. sudo vi ScreenCapture.strings

    次の行を見つけます。

    <key>%@ %@ at %@</key>  
    <string>%@ %@ at %@</string>  
    

    次の行に置き換えます。

    <key>%@ %@ at %@</key>  
    <string>%@_%@_%@</string>  
    
  6. バイナリに戻す:
    sudo plutil -convert binary1 ScreenCapture.strings
  7. killall SystemUIServer

最初の変更と組み合わせると、次のようになります。

screenshot_2011-08-30_10.01.36.png 必要なものに非常に近い


2
これは、OS X El Capitanでは動作しないようです。これは、おそらくシステム整合性保護が原因です。
ラドンロズバラ

7

私はこれを別の方法で解決しました。Automatorを使用して、スクリーンショットフォルダーを監視するフォルダーアクションを設定し、新しいファイルの名前を希望どおりに変更します。

ここには、同様のアプローチと手順を備えた適切なガイドがあります。


Automatorアプローチのレイテンシはどのくらいですか?元のスクリーンキャップが保存されてから、新しいファイル名でファイルが使用可能になるまでの時間はどれくらいですか?1秒、3秒、12秒ですか?
Cheeso

スクリーンショットから5〜7秒の間、ファイル名が変更されるまで(2009年のMacBook Proで)取得されます。
エイドリアンB

ありがとう!そのため、これを行うためのbashコードをいくつか作成します。
Cheeso

4

デフォルトのショートカットを無効にし、このコマンドへのショートカットを割り当てました

screencapture -i ~/Desktop/$(date +%Y%m%d%H%M%S).png

-i(インタラクティブ)は⇧⌘4または⌃⇧⌘4のようなものです。


それが問題の最も直接的な解決策のように思えます。しかし、コマンドへのショートカットをどのようにマッピングしますか?[システム環境設定]ダイアログで、「追加するメニューコマンドの正確な名前を入力してください」と表示されます。あなたのコマンドはメニューコマンドではないので...?
Cheeso

1
@Cheeso回答のリンクを参照してください。FastScriptsやAlfredなどのアプリケーションを使用するか、Automatorでサービスを作成できます。
Lri

3

ターミナルを開き、次を入力します。

$ sudo su

$ cd /System/Library/CoreServices/SystemUIServer.app/Contents/Resources/English.lproj

$ plutil -convert xml1 ScreenCapture.strings

$ nano ScreenCapture.strings

変化する

<key>%@ %@ at %@</key>
    <string>%@ %@ at %@</string>
<key>.</key>
    <string>.</string>
<key>Screen Shot</key>
    <string>Screen Shot</string>

<key>%@ %@ at %@</key>
    <string>%@_%@_%@</string>
<key>.</key>
    <string></string>
<key>Screen Shot</key>
    <string>screenshot</string>

それから

Control+ Oはファイルを書き込み、Control+ Xはnanoを終了します

$ plutil -convert binary1 ScreenCapture.strings

$ killall SystemUIServer

ここでもう1つ注意すべきことは、AM / PMを取り除くには、[システム環境設定]> [言語とテキスト]> [形式(24時間形式)]で変更する必要があることです。タイムスタンプは、設定方法に従って表示されます。この設定を変更すると、すべてのファイル名がこの形式を使用することに注意してください。

〜仕組みを教えてください。


3

上記の複雑な端末アクションの同じ効果は、Mac OSおよびそのアプリのあらゆる種類の隠された設定のインターフェイスとして機能する無料のシークレット設定ペインを通じて実現できます。設定ペインを開いて、変更したい設定を見つけるだけです


1

私はエイドリアンBの答えが好きだった。スクリーンキャップファイルの名前を変更するために書いたシェルスクリプトは次のとおりです。https//gist.github.com/DinoChiesa/7796444

フォルダアクションとして設定するには、この記事に従ってください

Automatorウィンドウが表示されたら、次のガイドに従ってください。

ここに画像の説明を入力してください

保存することを忘れないでください(Command-S)。

私の経験では、画面をキャプチャした後、そのフォルダーアクションが "キックオフ"するのに3〜6秒かかります。


1

次の2つのコマンドを使用します。

defaults write com.apple.screencapture name "screenshot_$(date +%Y_%m_%d-%H_%M_%S)"
defaults write com.apple.screencapture "include-date" 0

デフォルトのスクリーンショットの場所を変更することもできます(私の場合、これはiCloudのフォルダーです)

defaults write com.apple.screencapture location "~/Library/Mobile\ Documents/com\~apple\~CloudDocs/screenshots"

ありがとうそれは良いことだ
TinhNQ

0

IMOでは、/ System /にあるものを絶対にいじってはいけません。

一つには、カスタマイズが将来の更新によって上書きされることを求めているだけです。

Sharpshooterのデモをhttp://www.kerlmax.com/products/sharpshooter/からダウンロードします

30日間使用できます。その後、15ドルで購入します。それは素晴らしいユーティリティです。

または、Skitchを試しましたか?完全に無料で、組み込みよりもはるかに優れています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.