Create a subdirectory/subfolder
powershell, subdirectory
Solution
This is what I wound up ending with:
# Compiles the Fusion packet for distribution
###############################
###########Variables###########
###############################
#folder structure
$FSG = "F:\FSG"
$containerFolder = "Packet.Fusion for IT and AV Professionals"
$rootFolder = "Fusion for IT and AV pros $(Get-Date -format “MM-dd-yyyy”)"
$subRoot1 = "Fusion Server"
$subRoot2 = "Scheduling Enhancement and Panels"
$subRoot2sub1 = "Scheduling Panels"
$subRoot3 = "SQL Server"
#source folders
$HW = "0.Hardware"
$3SMDoc = "0.Hardware\TPMC-3SM.Documentation"
$4SMDoc = "0.Hardware\TPMC-4SM.Documentation"
$4SMDDoc = "0.Hardware\TPMC-4SM-FD.Documentation"
$730Doc = "0.Hardware\TSW-730.Documentation"
$730OLH = "0.Hardware\TSW-730.OLH"
$CENRVS = "0.Hardware\CEN-RVS.Notes"
$ProjMgmt = "0.Project Management"
$SW = "0.Software"
$RVLicensing = "0.Software\0.RoomView.License"
$RVNotes = "0.Software\0.RoomView.Notes"
$SQLLicensing = "0.Software\database.SQL.Licensing"
$SQLNotes = "0.Software\database.SQL.Notes"
$FRVMarketing = "0.Software\Fusion RV.Marketing"
$FRVNetworking = "0.Software\Fusion RV.Networking"
$FRVNotes = "0.Software\Fusion RV.Notes"
###############################
#create the directory structure
###############################
md -Path $containerFolder -Name $rootFolder
cd $FSG\$containerFolder\$rootFolder
md "eControl and xPanels"
md "Fusion Server" #$subRoot1
md "Getting Started as a User"
md "Project Management"
md "RoomView Connected Displays"
md "Scheduling Enhancement and Panels" #$subRoot2
md "SQL Server" #$subRoot3
cd $FSG\$containerFolder\$rootFolder\$subRoot1
md "CEN-RVS"
md "Licenseing Information"
md "Networking"
md "Official Documentation"
md "Prerequisites, including powerShell script"
md "Product Info"
md "Requirements"
md "Tech Info"
md "Windows Authentication to Fusion RV"
cd $FSG\$containerFolder\$rootFolder\$subRoot2
md "Outlook Add-in"
md "Scheduling Panels" #$subRoot2sub1
cd $FSG\$containerFolder\$rootFolder\$subRoot2\$subRoot2sub1
md "TPMC-3SM"
md "TPMC-4SM"
md "TPMC-4SM-FD"
md "TSW-730"
cd $FSG\$containerFolder\$rootFolder\$subRoot3
md "Multi-database model only"
md "SQL Licensing"
Problem
I'm creating a PowerShell script to "compile" a bunch of documentation spread across my notes. I'd like to create the directory structure first, then copy files into the newly created directories. I know how to do this manually, but I'm not sure how to approach it in PowerShell. I'm new to scripting in general, though I do understand programming in several different languages. Should I change the current directory, then just make some more directories? Or is there a different approach? This is what I have so far: ``` #Variables $containerFolder = "F:\FSG\Packet.Fusion for IT and AV Professionals" $rootFolder = "Fusion for IT and AV pros $(Get-Date -format “MM-dd-yyyy”)" #create the directory structure md -Path $containerFolder -Name $rootFolder ``` I'd like to make several directories within $rootFolder, and 1 or 2 of them will have their own subdirectories. If I were doing this at the command line, I would cd to the new directory and then md some more. Is that how to do it with scripting? EDIT This is what I wound up starting with: ``` # Compiles the Fusion packet for distribution ############################### ###########Variables########### ############################### #folder structure $FSG = "F:\FSG" $containerFolder = "Packet.Fusion for IT and AV Professionals" $rootFolder = "Fusion for IT and AV pros $(Get-Date -format “MM-dd-yyyy”)" $subRoot1 = "Fusion Server" $subRoot2 = "Scheduling Enhancement and Panels" $subRoot2sub1 = "Scheduling Panels" $subRoot3 = "SQL Server" #source folders $HW = "0.Hardware" $3SMDoc = "0.Hardware\TPMC-3SM.Documentation" $4SMDoc = "0.Hardware\TPMC-4SM.Documentation" $4SMDDoc = "0.Hardware\TPMC-4SM-FD.Documentation" $730Doc = "0.Hardware\TSW-730.Documentation" $730OLH = "0.Hardware\TSW-730.OLH" $CENRVS = "0.Hardware\CEN-RVS.Notes" $ProjMgmt = "0.Project Management" $SW = "0.Software" $RVLicensing = "0.Software\0.RoomView.License" $RVNotes = "0.Software\0.RoomView.Notes" $SQLLicensing = "0.Software\database.SQL.Licensing" $SQLNotes = "0.Software\database.SQL.Notes" $FRVMarketing = "0.Software\Fusion RV.Marketing" $FRVNetworking = "0.Software\Fusion RV.Networking" $FRVNotes = "0.Software\Fusion RV.Notes" ############################### #create the directory structure ############################### md -Path $containerFolder -Name $rootFolder cd $FSG\$containerFolder\$rootFolder md "eControl and xPanels" md "Fusion Server" #$subRoot1 md "Getting Started as a User" md "Project Management" md "RoomView Connected Displays" md "Scheduling Enhancement and Panels" #$subRoot2 md "SQL Server" #$subRoot3 cd $FSG\$containerFolder\$rootFolder\$subRoot1 md "CEN-RVS" md "Licenseing Information" md "Networking" md "Official Documentation" md "Prerequisites, including powerShell script" md "Product Info" md "Requirements" md "Tech Info" md "Windows Authentication to Fusion RV" cd $FSG\$containerFolder\$rootFolder\$subRoot2 md "Outlook Add-in" md "Scheduling Panels" #$subRoot2sub1 cd $FSG\$containerFolder\$rootFolder\$subRoot2\$subRoot2sub1 md "TPMC-3SM" md "TPMC-4SM" md "TPMC-4SM-FD" md "TSW-730" cd $FSG\$containerFolder\$rootFolder\$subRoot3 md "Multi-database model only" md "SQL Licensing" ``` Is there any benefits to creating the leafiest most subdirectories and by implication making PowerShell create the middle ones? Are there any drawbacks to doing it this way?