Im trying to create a new folder in a blank directory and have the script make a folder for each month for the last 3 years. Such as 2013 (Jan, Feb, Mar…), 2014 (Jan, Feb, Mar…) and so on. I know how to make just normal folders. But im wondering an easy way to use the Get-Date function to make these folders. Is there any easy way to do this?
Good Question. Here is my take at this.
2012..2015 | %{New-Item -Path C:\temp\ -ItemType Directory -Name $_} for ($i = 2;$i -le 5;$i++){ 1..12 | % {New-Item -Path "C:\temp\201$i" -ItemType Directory -Name (Get-Date "1/$_/2015" -Format M).TrimStart('01 ')} }
I’m sure someone may have a more elegant way of doing this
It’s a little unclear from your description what you ultimately want the folder path to look like. I am assuming c:\temp\2013\Mar. The following uses the US culture for the get-date input, but you can change it to whatever culture you use.
# define starting point $root = "C:\ephemeral\" #create the annual folders 2012..2015 | foreach { $yr = (New-Item -Path $root -ItemType Directory -Name $_).Name # create monthly folders 1..12 | foreach { New-Item -Path "$root\$yr" -ItemType Directory -Name $(Get-Date "$_/1/$yr" -Format MMM) } }
That is more or less what I was looking for! I appreciate the help. Just going to take that and tweak it a bit to how I need it. Thanks guys!