1
0

More than 3 years have passed since last update.

WSHで複数あるファイル名の末尾に特定の文字を追加する

Last updated at Posted at 2020-03-04

はじめに

複数あるファイルのファイル名の末尾に一括して特定の文字を追加したいことがありました。例えば、複数の報告書があり、完成したものについてファイル名末尾に"_DONE"を追加しておき、完成したかどうかが視覚的にわかるようにしておく場合などです。

ファイルが1つや2つであれば別に良いのですが、10個とかあると結構大変です。そこで、WSHで自動化を考えました。

コード

JavaScript

まず、勉強がてらJavaScriptで記述してみました。

sample.js
var fso = new ActiveXObject("Scripting.FileSystemObject");

var args = WScript.Arguments;

for (var i=0; i<args.length; i++) {
    var baseName = fso.GetBaseName(args(i));
    var ext = fso.GetExtensionName(args(i));
    var file = fso.GetFile(args(i));
    baseName += "_DONE";
    file.Name = baseName + "." + ext;
}

WScript.Echo("Complete");

VBScript

続いて、慣れ親しんだVBScriptです。

sample.vbs

Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")

Dim args
Set args = WScript.Arguments

Dim i
Dim baseName
Dim ext
Dim file

For i = 0 To args.Count - 1
    baseName = fso.GetBaseName(args(i))
    ext = fso.GetExtensionName(args(i))
    Set file = fso.GetFile(args(i))
    baseName = baseName & "_DONE"
    file.Name = baseName & "." & ext
Next

WScript.Echo("Complete")

まとめ

ファイル名を変更したいファイル群を選択し、コードを記述したファイルにドラッグ&ドロップするだけでファイル名の末尾に_DONEを追加することができました。一件落着。

1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0