Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $excluded = @("*.ps1", "*.bat", "*.exe", ".*", "_*")
- function Move-SchoolYear([string]$folder, [int]$startYear)
- {
- $start = '8/1/' + $startYear
- $end = '7/1/' + ($startYear + 1)
- # Select only files and exclude the others
- $files = dir *.* -exclude $excluded |
- # Only between the date range
- ? { $_.LastWriteTime -gt $start -AND $_.LastWriteTime -lt $end}
- # Skip this grade if we got not files
- if ($files -eq $null -OR $files.Count -eq 0) {
- Write-Host ($folder + ": No files to move")
- return
- }
- # Just to make it pretty, check if we only got one file
- if ($files.GetType() -eq [System.IO.FileInfo]) {
- Write-Host ($folder + ": 1 file to move")
- } else {
- Write-Host ($folder + ": " + $files.Count + " files to move")
- }
- # Don't make folder it it's already is there
- if (!(Test-Path $folder)) {
- mkdir $folder
- }
- $files | ForEach-Object {
- $name = $_.Name
- $source = $name
- $dest = $folder + "\\" + $name
- if (Test-Path $dest) {
- Write-Host (" [!] Failed to move '" + $name + "'. File already exists.")
- continue
- }
- try {
- Move-Item $source $dest -ErrorAction Stop
- Write-Host (" Moved " + $name)
- } catch {
- Write-Host (" [!] Failed to move '" + $name + "'. " + $_.Exception.Message)
- }
- }
- }
- $grades = @{
- "Grade 10" = 2013;
- "Grade 9" = 2012;
- "Grade 8" = 2011;
- "Grade 7" = 2010;
- "Grade 6" = 2009
- }
- foreach($_ in $grades.GetEnumerator()) {
- Move-SchoolYear $_.Key $_.Value
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement