Home » WSH・Windows Script Hostの使い方 » ファイル名を一括変更するVBScript-先頭・左から指定文字数削除

ファイル名を一括変更するVBScript-先頭・左から指定文字数削除

対象:VBScript

このサイト・インストラクターのネタ帳では、FileSystemObjectを使った、ファイル名を一括変更するVBScriptをご紹介しています。

元のファイル名の先頭に指定した文字列を追加するスクリプトと、元のファイル名から指定した文字列を削除するスクリプトです。

[スポンサードリンク]

もう一つ、元のファイル名の先頭から・左から指定した文字数を削除するスクリプトも、私はよく使っていますので、ご紹介しておきます。

先頭から指定した文字数を削除する

以下のスクリプトが、私の使っている元のファイル名の先頭から・左から指定した文字数を削除するVBScriptです。

Option Explicit

Dim fso ' Scripting.FileSystemObject
Dim f ' Scripting.File
Dim args
Dim f_name
Dim del_cnt

With WScript
 Set args = .Arguments
 If args.Count < 1 Then .Quit
 del_cnt = InputBox("ファイル名の左から削除する文字数を入力してください。")
 If Len(del_cnt) = 0 OR Not IsNumeric(del_cnt) 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 = Mid(f.Name, del_cnt + 1)

 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ファイルにドラッグアンドドロップすると、
「ファイル名の左から削除する文字数を入力してください。」
というメッセージが表示され、指定された文字数分の文字が元のファイル名から削除される形で、ファイル名をまとめて変更できます。

サンプルスクリプトの解説

スクリプトの大きな流れはこれまでご紹介してきた、ファイル名を一括変更するスクリプトと同じです。

違っているのは、ファイル名を変更するFor Each ~ Next文の中の、
 f.Name = Mid(f.Name, del_cnt + 1)
の部分です。

Mid関数を使って、元のファイル名から、インプットボックスで入力された数値に1加算した以降の文字に、ファイル名を変更しています。

文字数を指定する必要があるので、InputBoxで入力されたのが数字ではなかったときにも、処理を終了するようにしています。
 If Len(del_cnt) = 0 OR Not IsNumeric(del_cnt) Then .Quit

[スポンサードリンク]

Home » WSH・Windows Script Hostの使い方 » ファイル名を一括変更するVBScript-先頭・左から指定文字数削除

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

検索


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

.