ファイル名に文字列をまとめて付与するというタイプの、ファイル名を一括変更するVBScriptをご紹介しました。
複数のファイルの名前から、指定した文字列をまとめて削除するという処理も、私はVBScriptにしていますので、ご紹介しておきます。
ファイル名から文字列をまとめて削除するサンプルスクリプト
以下のようなスクリプトで、複数のファイルの名前から、指定された同じ文字列を一気に削除することができます。
Dim fso ' Scripting.FileSystemObject
Dim f ' Scripting.File
Dim args
Dim f_name
Dim del_txt
With WScript
Set args = .Arguments
If args.Count < 1 Then .Quit
del_txt = InputBox("ファイル名から削除する文字列を入力してください。")
If Len(del_txt) = 0 Then .Quit
End With
Set fso = CreateObject("Scripting.FileSystemObject")
On Error Resume Next
For Each f_name in args
set f = fso.GetFile(f_name)
f.Name = Replace(f.Name, del_txt, "")
With Err
Select Case .Number
Case 58
MsgBox "同じ名前のファイルが存在するため処理を中断します。"
Exit For
Case 0
' エラーが発生しなかった場合は何もしない
Case Else
MsgBox .Description & .Number
.Clear
End Select
End With
Next
Set f = Nothing
Set fso = Nothing
上記のコードを含んだ、拡張子「.vbs」のファイルを用意しておいて、ファイル名を変更したいファイルをその.vbsファイルにドラッグアンドドロップすると
「ファイル名から削除する文字列を入力してください。」
と表示されたインプットボックスが表示され、ファイル名をまとめて変更することができます。
サンプルスクリプトの解説
既にご紹介している、文字列を付与するタイプのVBScriptと作りはほとんど同じです。
大きく異なるのはFor Each ~ Next文の中の、
f.Name = Replace(f.Name, del_txt, "")
です。
Replace関数を使って、インプットボックスで指定された文字列を削除した名前に変更しています。
Replace関数は、基本的にはその名前のとおり、文字列を置き換える関数ですが、空白に置換することで削除を行っています。
第1引数に指定された文字列 = 元のファイル名・f.Nameから、第2引数に指定された文字列 = インプットボックスで入力された文字列・del_txtを探して、第3引数に指定した空白文字列「""」に置換をしています。
Home » WSH・Windows Script Hostの使い方 » ファイル名をまとめて変更するVBScript-文字列の一括削除