実験室 » 備忘録 » この記事

ファイル名を小文字にするバッチファイルについて(備忘録)

デジカメなんかが自動でつけるファイル名は、大文字で名前をつけてくれるのですが、DreamWeaverで画像を貼りこむ時に、いいかげん数が多いと癪に触るので、バッチ処理で前処理することにしました。こうゆうバッチファイルは大抵誰ががすでに作ってくれているものなので、検索して見つけました。そのままバッチファイルとして保存して使えば、なんら問題は無いんでしょうが、書いてあるスクリプトの内容をやっぱり理解した上で使いたいと思うのは人情です。

参考サイト
http://blog.noris.today/?p=372

googleなどで「ファイル名 小文字 変換」とかやるとでてきますね。

で、普段バッチファイルなんかは書かない人が、いきなりこうゆう文を読むとつまづいてしまいます。

FOR %%I IN (a b c d e f g h i j k l m n o p q r s t u v w x y z) ^
DO CALL SET STR=%%STR:%%I=%%I%%

前文の
SET STR=%STR:A=a%

までは、素直に分かる。が、SET STR=%%STR:%%I=%%I%%
のところが、バッチファイルのルールを知らないので「???」となりましたので、備忘録を書いておこうかと思います。

★以下、分かってなかったポイント。
(1) ^ 記号。…正規表現?とか暫く思ってましたが、よくよく考えるとこれはプロンプト文ですので、改行がはいるけどコマンドとしては連続してるよとの意味だった。以下のサイトに説明あり。
(参考サイト)http://pf-j.sakura.ne.jp/program/dos/doscmd/str_circumflex.htm

(2) batファイル全体の構文ルールがそもそもよく分かってないので、ざっと把握したいという…バッチファイル書かないから(;´Д`)そこからだよね。やっぱし。
(参考サイト)http://qiita.com/sksmnagisa/items/8c4c1788af44cc1dc63a
こちらのサイトの覚書、ざっと読むだけでも大掴みで理解できるのでとても助かります( ^ω^ )

(2.5) for文中の、%%I とか。これは、気持ち悪い書き方だけどエスケープ文字がfor文中の変数にはくっつくという説明を読んで理解した。だが、やっぱりなんか嫌。

しかし、for文のところはまだしっくりこない。

(3)SET STR=%STR:A=a% とSET STR=%%STR:%%I=%%I%% がしっくりくるには…
これが、他の言語でいうところのエスケープシーケンスのルールを単純に当てはめると、
後者の中から、エスケープ文字にあたるところを除くと、
SET STR=%STR:%I=%I% となる。これで正しい。最前列と最後尾の%はここでは、無視して、中身を比較する。STR:A=a と STR:%I=%I ここが、ルールを知らないとつまづいてしまう。

前者の解釈では、大文字のAを見つけたら小文字のaに差し替えて、STRに格納するという意味だが、
%I=%Iだと、おんなじものを差し替えてるように見えてしまう。で、初めてみると「???」になった訳ですが、ここには、こうゆうルールがあるのを見つけてきた。

(参考サイト)http://qiita.com/q1701/items/d81e51a64f41ca841da6
このサイトの中程あたりの文章に、「大文字、小文字に変換する」というセクションがある。そこには、

(以下引用)———————————————————
%変数:置換元文字列=置換先文字列% を使う。
置換元文字列の大文字・小文字は区別されないので、以下の動作となる。

%ENV:A=A% ・・・ a または A → A
%ENV:a=a% ・・・ a または A → a

——————————————————————
このルールを知ってれば、ここでやっと納得できるようになる。

確認すると、STRという変数には、対象フォルダにある(処理中の1つの)ファイル名が入っており、
%I=%I も上のルールに従って書き換えると、inで指定されているパターンは全て小文字なので、例えば、a=a という下のケースの書き方に置き換えられる。これで「(%ENVの中身に)a または A(を見つけたら)」だったら、「a」にするという解釈が成立する。

「置換元文字列の大文字・小文字は区別されない」というルールを知らないと「???」となりがちなバッチ処理についてでした。

YU-NOのリメイク版がでるという話とか

あっという間に、2月も今日で終わりで明日から3月ですね。春らしくなってきましたが、花粉は今日もガンガン飛びまくっているので、ブログなぞ書いて部屋に籠城中です。折角ですのでここ最近気に留めているようなことを徒然に書いてみます。

 

1.表題のとおり、去年の暮あたりに発表されてたリメイク版の件。シュタインズゲートを遊んだ時、YU-NOの世界観に似てるなーとか思いながら遊んでいたので、パラレルワールドものの金字塔のリメイクには興味があります。旧作が好きなので、期待半分不安半分で今後の進展を注視していきたいところ。マルチエンディングシステムと分岐システムが連動してるのをどう今風に簡略化して解決するのかな?

 

2.いろいろ一時期ネットにバナー広告でてたので、チェックしてたんですが、これ=オカルティックナインって取りあえず小説のみ?(ゲームにはしないのかなぁ)とか、思ったり。

 

3.こんな感じのキャンペーンサイトのキャラクターとかサイトデザインとかに注目していたり。

 

 「コズミック・フォージ」視点が面白いし、デザインもおしゃれですよ。

 

 「食パンダッシュ やまだちゃん」パン食を推進するフリーペーパーのキャンペーンサイトとそのマスコットキャラ。リーフレットのデザインは味わい深いかんじで素敵だと思ってます。リーフレットおいてあるのは、京都限定なのね。京都発のものって色々斬新だったり、古いのに古臭くないというところがすごい。

 

4.最近の「きららMAX」は、「うにうにうにうに」が地味に面白かったり。じみーに独特の雰囲気を醸し出しててあれが無い月だとちょっとさみしいかったり。

 

5.Unityって5がでるんだ。最近4の本読み始めたばっかりなのに。(;´Д`)