アフィリエイト広告を利用しています

広告

posted by fanblog

2015年05月23日

VBS 「ファイル名の変更」

ブログを書いていて一つ面倒な作業がある。
画像が大きいのでサイズダウンしてアップしている訳だが、
サイズダウンしたファイルの名前を変更しておかなければならい。
変更しておかないと後でどれがオリジナルなのか解らなくなる。
そこでひとつひとつ名前を変更するわけだが、
ファイル数が多いと大変だ。
そこでファイル名の変更をVBSで作ってみた。
VBSとは、Visual Basic Script 。
ビジュアルベーシックふうのスクリプトで、簡易に処理が出来る。
昔、DOSコマンドで原始的な作業をバッチ処理していたが、
その作業をスクリプトで行えるのだ。
"FileSystemObject"と言うオブジェクトをよく使うので、
覚えるといいだろう。
下記が処理ソースだ。
コメントにも入れてあるが、出来上がったスクリプトを処理したい
フォルダに配置し実行すればファイル名を変更する。
単一フォルダ内のみの処理なので、下位レベルまで処理したければ
改造が必要となる。
ダイアログを出してフォルダの指定をしても良いのだが、
使用頻度から考えるとそこまでは必要ないと判断した。
コンスタントパラメータ"cFiExt"に処理したいファイルの
拡張子を入れておけば、該当するファイルだけリネームする。
被検査対象を小文字に変換してから判断しているので、
コンスタントは小文字で設定する。
結果をMsgBoxで表示しているが、MsgBoxにも表示制限があって、
文字数は1バイト文字で最大約1024文字までしか表示出来ない。
メインルーチンでスクリプトの入っているフォルダを判断し、
関数でファイル名の変更ルーチンを呼び出している。
関数を変えれば他にもいろいろ使うことが出来る。
例えば、ファイルのコピーとか移動とか削除とか。


'=======================================
'フォルダ単位の名前の変更を行う
'対象フォルダにこのスクリプトを配置し、スクリプトを実行する
'処理対象拡張子をcFiExtに入力しておく
'=======================================
'
'フォルダ名にスペース等が入っているとエラーになる
'MsgBoxは1バイト文字で最大約1024文字までしか表示出来ない
'
Const cFiExt = "jpggif" 'jpg と gif を処理対象にする
dim FS
dim xMyPath

set FS=CreateObject("Scripting.FileSystemObject")
'スクリプトのフォルダ名を取得
xMyPath=Replace(WScript.ScriptFullName, WScript.ScriptName, vbNullString)
if right(xMyPath,1)="\" then '右端が"\"の場合この"\"を削除
   xLen=Len(xMyPath)
   xMyPath=left(xMyPath,(xLen-1))
end if

FileRenameProc(xMyPath)

set FSN = Nothing

'--------------------------------------------------
' ファイル名の変更
'--------------------------------------------------
Function FileRenameProc(pSourceFolder)
dim objFolder,objFiles,objFi,Fi
dim Arr,xx,tmp,NewName
dim xLen,Ix

Set objFolder = FS.GetFolder(pSourceFolder)
Set objFiles = objFolder.Files
tmp = ""
For Each Fi in objFiles
   Arr =Split(Fi.Name,".")
   xx = LCase(Arr(1))
   If InStr(cFiExt,xx) > 0 Then
      set objFi = FS.GetFile(Fi)
      NewName=Arr(0) & "b" & "." & Arr(1)
      tmp = tmp & Fi.name & "->" & NewName & vbCrLf

      objFi.Name = NewName

   End If
Next
MsgBox tmp '表示文字数制限あり

set objFi = Nothing
Set objFiles = Nothing
Set objFolder = Nothing

End Function
posted by kaz at 09:20 | Comment(0) | TrackBack(0) | コンピュータ
この記事へのコメント
コメントを書く

お名前:

メールアドレス:


ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバックURL
https://fanblogs.jp/tb/3699353
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック
リンク
access:
online:
ファン
検索
<< 2024年05月 >>
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
最新記事
最新コメント
オレンジ色の猫が by オーナー (02/06)
オレンジ色の猫が by 翠星石 (01/23)
ドローンを修理する by kaz (03/14)
ドローンを修理する by obayashi (03/10)
タグクラウド
カテゴリアーカイブ
プロフィール




×

この広告は30日以上新しい記事の更新がないブログに表示されております。