Macのスクリーンショットのファイル名日付デフォルトフォーマットを変更するには 2020年09月26日

Hello, iMac.

表題の件、日本語でググっても情報皆無。日付を表示、非表示の方法は情報があるが、フォーマット変更方法はない。

英語で検索。下記ページでは Automator を使う方法を書いているが少しめんどくさい。

How Could I Change the Date Format From Screenshot File Names?

他に対応方法がなさそうなので Automator で作ってみた

とうかそもそもな Mac のスクリーンショットのファイル名を変更したいかと言えば、スクリーンショットのファイルを One Drive に保存しようとするとクラウドで使用できないファイル名というエラーが表示されるためだ。

もともと、デフォルトのファイル名は、

Screen Shot 2011-08-30 10.01.36.png

というファイル名にスペースが入りまくっためんどくさいフォーマットになっていて、とりあえず “Screen Shot” という最初の文字列がめんどくさいのでターミナルから以下のコマンドを打って文字を消した。下記のコマンドは日時の文字列の前に挿入する文字を定義するコマンドだけど、そこを “” にして何も挿入しないようにした。

defaults write com.apple.screencapture name “”
killall SystemUIServer

そうするとこうなる、

2011-08-30 10.01.36.png

単純な日付だけのファイル名のほうがよかろうと思ってこうしていた。

そして One Drive で使用できないファイル名のルールは以下。

名前の先頭または末尾がスペースである
ピリオドで終わる名前
サポートされていない Unicode コードポイントを含む名前
サロゲートペアの問題がある名前

OneDrive では無効な文字を使用してファイルの名前を変更できる – Office サポート

一見、スクショのファイル名は問題なさそうに見えるが、より問題のないように、

接頭文字 “s” + 日付 YYYYMMDD の 8桁 + 時間 HHMMSS の 6桁

にしようと思った

s20201001094510.png

たしかにこれは One Drive で Sync される。なんで?元のファイル名と何が違うの?何が問題なの?と Automator でワークフローも作ったがいろいろ思案した。そして実にしょうもないことが原因であることを発見。

Screen Shot 2011-08-30 10.01.36.png

defaults write com.apple.screencapture name “”
killall SystemUIServer

2011-08-30 10.01.36.png

これ、

実は頭の文字列と日時の文字列の間のスペースが残ってしまっている。

これが、One Drive のルールの “名前の先頭または末尾がスペースである” に引っかかってしまっただけなのだ。このスペースをファイル保存時に取り除くコマンドはざっとググってみたけど見つからなかった。なので手っ取り早く One Drive でスクリーンショットファイルを保存する可能性のある人は頭の文字列を何らか付けておいたほうが無難です。

まー、自分がなかなか気づかなかったボンクラというのはさておき、先頭の文字列を空にしたら間のスペースぐらい自動で削除してくれよ、と思う。

iPhone ユーザーを辞めて Android を使い始め、Ryzen で PC を組んで超スムースな Windows10 ハイスペックデスクトップ PC を使い始めてどんどん Apple プロダクトから気持ちが離れて行きます。。。なんか最近 MacOS も使いにくいんよねー。

Mac のスクリーンショットファイル名をデフォルトから変えて、One Drive で保存してエラーに困っている人ってどれぐらい居るかわからんけど、一応共有です。


↑ これはゲーム用のキャプチャデバイス。