VBSを利用して、、ファイル名にyyyyMMdd形式の日付が含まれているときに、その日付を翌日の日付に変更してみました。
もし毎日日付変更で管理しているファイルがある場合にはファイル名の日付変更をワンクリックで実行できます。
ファイル名のyyyyMMddを翌日の日付に変更する
今回は以下の3つの処理を実行させます。
- 1.[hogehoge_yyyyMMdd(本日の日付).txt] を [C:\hogehoge\folder] という特定のフォルダにコピーして格納
- 2.コピー元のファイルを [hogehoge_yyyyMMdd(明日の日付).txt] に変更
- 3.最後に「finished」というポップアップを表示
VBSスクリプト
このスクリプトを .vbs ファイルとして実行します。
'1-1.本日日付のファイルを取得
Dim fileName
Dim strDate
Dim fileNameTop :fileNameTop = "hogehoge_"
Dim fileNameSuffix :fileNameSuffix = ".txt"
strDate = Date()
strDate = Replace(strDate, "/", "")
fileName = fileNameTop & strDate & fileNameSuffix
'1-2.本日日付のファイルをコピー
Dim fs
Dim fn
Dim BeforePath :BeforePath = "C:\hogehoge\" & fileName
Dim AfterPath :AfterPath = "C:\hogehoge\folder\"
Set fs = WScript.CreateObject("Scripting.FileSystemObject")
fs.CopyFile BeforePath,AfterPath
'2.本日日付のファイルの日付を変更する
Dim filename_mf
strDate = DateAdd("d", 1, Date())
strDate = Replace(strDate, "/", "")
filename_mf = fileNameTop & strDate & fileNameSuffix
Set fn = fs.GetFile(BeforePath)
fn.Name = filename_mf
'3.「完了しました」とポップアップを表示
msgbox "finished"
スクリプト実行結果
実際に実行してみます。
vbsファイルの実行はファイルをダブルクリックしても実行可能ですし、以下のようにコマンドプロンプトから実行することも可能です。
C:\Users\xxxxxx\Desktop>test.vbs #これでEnterを押す
実行前の状態
実行前は C:\hogehoge\folder には何も格納されておらず、C:\hogehoge には実行した日付のファイル(2022/09/07)がtxt形式で格納されています。
実行後の状態
今回はコマンドプロンプト上からVBSファイルを実行しました。
実行後、C:\hogehoge\folder に日付0907のファイルが格納され、
C:\hogehoge には実行した日付の翌日の日付ファイル(0908)が格納されました。
また、以下の通りファイルの中身もコピーされており、
ファイル名だけが違っていることも確認できます。