本記事では、VBS(Visual Basic Script)を使って、ファイル名に付与された yyyyMMdd
形式の日付を翌日に変更しつつ、元ファイルを別フォルダにコピーする方法を解説します。
たとえば「hogehoge_20250907.txt」をコピーしてバックアップを取り、さらに「hogehoge_20250908.txt」にリネームしたいときなどに役立ちます。
VBSでファイル名の日付を自動変更したい方、日次バッチ処理でファイルを管理したい方におすすめです。
1.やりたいこと
VBSスクリプトを実行すると、次の処理を自動で行います。
- yyyyMMdd 形式の日付が付与されたファイル名を、翌日のyyyyMMdd形式にリネーム
- リネーム処理の前に、元のファイルを別フォルダへコピー(バックアップ)
- 処理終了後に「finished」などのポップアップ表示で完了を通知
例えば、元ファイル名が hogehoge_20250907.txt
の場合、
実行後には hogehoge_20250908.txt
に変更されつつ、元データは別フォルダに残ります。
2.ファイル名のyyyyMMddを翌日の日付に変更する
今回は以下の3つの処理を実行させます。
念のため、日付の変更の他に元のファイルもコピーしておきます。
- 1.[hogehoge_yyyyMMdd(本日の日付).txt] を [C:\hogehoge\folder] という特定のフォルダにコピーして格納
- 2.コピー元のファイルを [hogehoge_yyyyMMdd(明日の日付).txt] に変更
- 3.最後に「finished」というポップアップを表示
2-1.VBSスクリプト
このスクリプトを .vbs ファイルとして実行します。
' ——— 初期設定 ———
Dim fileNameTop : fileNameTop = "hogehoge_"
Dim fileNameSuffix : fileNameSuffix = ".txt"
' ——— 今日の日付を yyyyMMdd 形式で取得 ———
Dim strDate
strDate = Date()
strDate = Replace(strDate, "/", "")
Dim fileName
fileName = fileNameTop & strDate & fileNameSuffix
' ——— コピー元/コピー先のパスを定義 ———
Dim BeforePath : BeforePath = "C:\hogehoge\" & fileName
Dim AfterFolder : AfterFolder = "C:\hogehoge\folder\"
Dim fs
Set fs = WScript.CreateObject("Scripting.FileSystemObject")
' ——— 元ファイルを別フォルダへコピー(バックアップ) ———
fs.CopyFile BeforePath, AfterFolder
' ——— 翌日の日付を取得してリネーム用ファイル名作成 ———
Dim filename_mf
strDate = DateAdd("d", 1, Date())
strDate = Replace(strDate, "/", "")
filename_mf = fileNameTop & strDate & fileNameSuffix
' ——— ファイル名をリネーム ———
Dim fn
Set fn = fs.GetFile(BeforePath)
fn.Name = filename_mf
' ——— 処理完了の通知 ———
MsgBox "処理が完了しました。"
3.スクリプト実行結果
実際に実行してみます。
vbsファイルの実行はファイルをダブルクリックしても実行可能ですし、以下のようにコマンドプロンプトから実行することも可能です。
$UserName = $env:UserName
C:\Users\$UserName\Desktop>test.vbs
3-1.実行前の状態
実行前は C:\hogehoge\folder には何も格納されておらず、C:\hogehoge には実行した日付のファイル(2022/09/07)がtxt形式で格納されています。

3-2.実行後の状態
今回はコマンドプロンプト上からVBSファイルを実行しました。
実行後、C:\hogehoge\folder に hogehoge_20220907 のファイルが格納され、
C:\hogehoge には実行した日付の hogehoge_20220908 が格納されました。

また、以下の通りファイルの中身もコピーされており、
ファイル名だけが違っていることも確認できます。
