ETC(EyeCatch)

拡張子とスクリプトと、、、あとは、、、

そうだ、ブログを書こう

そんな、ダメダメな事を冒頭に書いてしまう程、放置してました。
プライベートでいろいろありましてね。
まぁ、精神的にも落ち着いて来たような気がして、冒頭のような事を思い出しました。

そんな挨拶文とは関係ないのですが、パソコンやスマホの画面で、全角英字と全角数字をみると気持ち悪いんです。まぁ気持ち悪いだけで、身体的に影響が出るほどでは無いのですが。。。

で、同じように気持ち悪いのが拡張子が大文字だった場合です。頭では解っているんです。Windowsは大文字/小文字の判別をしていないから、動作としてはなんの問題もない事を。
さらに言えば、いまだにWindowsの標準は「拡張子を表示しない」になっている以上、気になってもいけない所なのかもしれません。

ただ、気になっちゃうんですよね。TXTとかJPGとかCSVとか、、、あまり見ないかもしれませんが、XLSとかDOCなんて拡張子見ると、そのアプリを作っている人の品性を疑っちゃいます。
(officeでは小文字で保存されるのに、なぜに大文字にする?なんてね。。。)

じゃあ、拡張子だけ小文字にするリネームソフトとかあるんじゃないかと調べると、意外と見つからないですね。他の人はどうしているのかと思うと、batファイルを作って

ren *.JPG *.jpg

いや、、、うん、、、解るよ。確かに たったこれだけのbatファイルで小文字になるね。うん。
じゃ、jpgファイル以外はどうするの?拡張子ごとに行増やすの?batファイル増やすの?

自分の環境で変えたい拡張子は、独自拡張子も含めて今のところ7種類くらい。今後増える可能性を考慮すると、なんかスマートじゃないな。。。と、なるんですね。

ちなみになんですが、いまだにファイラーとして愛用させて貰っているAs/Rには「一括で名前の変更」と言う機能があり、この中で「拡張子だけ大文字」「拡張子だけ小文字」に一括で変更する事が可能です。
「じゃぁそれで良いじゃん」となるんですが、、、まぁ諸般の事情でこれを使わない方法を探してまして、結局vbsを作ることにしました。

Option Explicit
'拡張子を大文字から小文字に変換するvbs

Dim strFileName
Dim strReName
Dim strExtension

'拡張子取得/ファイル名変更オブジェクト
Dim objFileSystem
set objFileSystem=CreateObject("Scripting.FileSystemObject")
'正規表現使用オブジェクト
Dim objRegEx
set objRegEx=New RegExp

'引数取得
For Each strFileName In WScript.Arguments
'Wscript.Echo strFileName

'拡張子取得
strExtension=objFileSystem.GetExtensionName(strFileName)

'拡張子を検索文字列へセット($は正規表現で行末の意味)
objRegEx.Pattern=strExtension+"$"
strReName=objRegEx.Replace(strFileName,LCase(strExtension))

'Wscript.Echo rnFileName
objFileSystem.MoveFile strFileName,strReName

Next

上のテキストをメモ帳へ貼り付けて、「小文字変換.vbs」なんて名前を着けてデスクトップにでも置いてあげれば出来上がりです。
あとは、変換したいファイルをまとめてD&Dしてあげれば小文字に変換してくれます。JPGだろうが、PDFだろうが、拡張子ごちゃまぜだろうが、一括で変更してくれます。
右クリックメニューの「送る」に登録すれば、そこから変換する事もできるはずです。

自分自身vbsの素人なので、やってる事は単純です。プロの人が見たら鼻で笑う内容だと思います。
ですが、Google検索で「拡張子 小文字に変更」で検索するとrenでの変更ばかりなので、自分と同じ「それじゃない・・・」と思った人の役に立てればなと思います。

ちなみに、vbs内の「LCase」を「UCase」に変更すると、逆にすべての拡張子を大文字にする様になります。
まぁ自分は使いませんが。。。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です