Home » WSH・Windows Script Hostの使い方 » ファイル名をまとめて変更するVBScript-文字列の一括削除

ファイル名をまとめて変更するVBScript-文字列の一括削除

対象:VBScript

ファイル名に文字列をまとめて付与するというタイプの、ファイル名を一括変更するVBScriptをご紹介しました。

複数のファイルの名前から、指定した文字列をまとめて削除するという処理も、私はVBScriptにしていますので、ご紹介しておきます。

[スポンサードリンク]

ファイル名から文字列をまとめて削除するサンプルスクリプト

以下のようなスクリプトで、複数のファイルの名前から、指定された同じ文字列を一気に削除することができます。

Option Explicit

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-文字列の一括削除

「WSH・Windows Script Hostの使い方」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.