VBSを利用して、ファイル名の日付を変更してみました。
やりたいこと
VBSファイルを実行すると、yyyyMMdd形式の日付が付与されたファイル名をその日の翌日の日付に変更します。
元のファイル名:hogehoge_20220907
VBS実行後のファイル名:hogehoge_20220908
ファイル名の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ファイルの実行はファイルをダブルクリックしても実行可能ですし、以下のようにコマンドプロンプトから実行することも可能です。
$UserName = $env:UserName
C:\Users\$UserName\Desktop>test.vbs
実行前の状態
実行前は C:\hogehoge\folder には何も格納されておらず、C:\hogehoge には実行した日付のファイル(2022/09/07)がtxt形式で格納されています。
実行後の状態
今回はコマンドプロンプト上からVBSファイルを実行しました。
実行後、C:\hogehoge\folder に hogehoge_20220907 のファイルが格納され、
C:\hogehoge には実行した日付の hogehoge_20220908 が格納されました。
また、以下の通りファイルの中身もコピーされており、
ファイル名だけが違っていることも確認できます。