Skip to main content

Create a Folder For Every Tuesday for One Year

I honestly have no idea how much traffic this article is going to get. I wanted to post it simply because I thought it was neat. This script was designed to automatically generate a folder name of ‘mmddyyyy’ for every Tuesday date of a year that a user inputs. This script can be copied and pasted into notepad and saved to where the folders need to be generated with a filename of choice with “.vbs” as the file type at the end.

Upon executing the end-user will be prompted to type in the target year.


'Get user input

iYear = InputBox("What year would you like to create folders for?")

If IsNull(iYear) = False Then
	Call makeFolders(iYear)
End If

Sub makeFolders(iYear)
	Dim sDate,eDate,ctDate,oFSO
	
	Set oFSO = CreateObject("Scripting.FileSystemObject")
	
	'make folders for the year entered by the end user
	sDate = CDate("01/01/" & iYear)
	eDate = CDate("12/31/" & iYear)

	ctDate = sDate

	For i = 1 to DateDiff("d", sDate, eDate)
		If Weekday(ctDate) = vbTuesday Then
			oFSO.CreateFolder createDate(ctDate)
			'MAKE FOLDER
		End If
		ctDate = ctDate + 1
	NEXT

End Sub

Function createDate(myDate)
	d = WhatEver(Day(myDate))
	m = WhatEver(Month(myDate))    
	y = Year(myDate)
	createDate = m & d & y
End Function

Function WhatEver(num)
    If(Len(num)=1) Then
        WhatEver="0"&num
    Else
        WhatEver=num
    End If
End Function

Please note that this script can be adapted to create folders for any day of the week. To modify, locate the for loop and change “vbTuesday” to any day of the week with “vb” at the beginning.

As always comments are greatly appreciated.

Comments

  1. Ryan McCormick

    Where the folder is created with the date: oFSO.CreateFolder createDate(ctDate) – look at the createDate function. You could create your own custom implementation with the strings you want, etc…

  2. Jesse

    How would you modify the folder name creation to do things like adding a _ as a seporator between DD__MM_YYYY?

Leave a Reply

Your email address will not be published. Required fields are marked *