Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Split files into separate directories based on specified "FilesPerFolder" default is 15 based on GR-1 file browser
- param(
- [Parameter(Mandatory=$true,HelpMessage="This is the location of a directory that contains samples, it will be broken into numbered folders to reduce the number of samples in a single folder.")]
- [string]$Directory,
- [int]$FilesPerFolder = 15
- )
- # Set Variables
- [int]$DirectoryCounter = 1
- [int]$FileCounter = 0
- # Get List of Sample Files in Directory Specified
- $Include = "*.wav","*.ogg","*.flac","*.aiff","*.avr","*.XI"
- $DirectoryWC = $Directory + "\*"
- $SampleFiles = Get-ChildItem -Path $DirectoryWC -Include $Include
- # Create the first subfolder
- $NewDirectory = ("{0:d2}" -f $DirectoryCounter).ToString()
- New-Item -ItemType Directory -Path $Directory\$NewDirectory -Force
- foreach ($File in $SampleFiles)
- {
- $FileCounter ++
- # Move Files to new Dir
- $Destination = $NewDirectory + "\" + $file.Name
- Move-Item -Path $File.FullName -Destination $Destination -Verbose
- If ($FileCounter -eq $FilesPerFolder)
- {
- $FileCounter = 0
- $DirectoryCounter ++
- # Create subsequent subfolder(s)
- $NewDirectory = ("{0:d2}" -f $DirectoryCounter).ToString()
- New-Item -ItemType Directory -Path $Directory\$NewDirectory -Force
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement