I need to move some Folders


How can I all at once move the folders (+ files in the folders) in the "From" folder, to the "To" folder.

02 is the month
2014 is the year
These values will change every month and year.

I am open to any technology/method, and a commercial solution is OK. - Any suggestions would be grateful!!

From: W:\WOW HITS - 02-2014
To: W:\Vid\WOW HITS\WOW HITS 2014\

From: W:\HOT MOVIE CLASSICS - 02-2014

From: W:\AMBIENT VIDEO 02-14
Computer GuyAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Bill PrewCommented:
Do you want to specify the current month and year as a parameter, or let the script pick up the current system date?

Bill PrewCommented:
And, was this a typo or does this one really only use a two digit year?

From: W:\AMBIENT VIDEO 02-14

or should it match the others like:

From: W:\AMBIENT VIDEO - 02-2014

Computer GuyAuthor Commented:
Haha. Typo. Year is suppose to be 4 digits and month 2. Good eye!!
Bill PrewCommented:
Okay, here is a starting point assuming a typo in the examples, and assuming you hard code the month and year into the script.  This can easily be adjusted to either take them as a command line parameter, or get them from the current date, or maybe a combo.

Save as a BAT file, adjust the paths as needed, and do some testing...

@echo off
setlocal EnableDelayedExpansion

set MM=02
set YYYY=2014

REM Define folder locations (no trailing "\")
REM set BaseDir=W:
REM set DestDir=W:\Vid

REM Process each folder name to process
for %%A in (%Folders%) do (
  REM If the source folder doesn't exist (with month and year added) report as error
  if not exist "%BaseDir%\%%~A - %MM%-%YYYY%\" (
    echo *WARNING* Folder [%BaseDir%\%%~A - %MM%-%YYYY%] does not exist, skipped.
  ) else (
    REM If dest folder does not exist (with year added) create it
    if not exist "%DestDir%\%%~A\%%~A %YYYY%\" (
      md "%DestDir%\%%~A\%%~A %YYYY%\"
  REM Move entire source folder to dest folder
  move "%BaseDir%\%%~A - %MM%-%YYYY%" "%DestDir%\%%~A\%%~A %YYYY%\" > NUL

Open in new window

Dan CraciunIT ConsultantCommented:
Here's a powershell solution:
$inputPath = "W:"
$outputPath = "W:\Vid"

$month = "02"
$year = "2014"

$newPath = ""

gci $inputPath -Filter "*$month-$year" | %{

    #remove the 02-2014 part, with the space before
    $newPath = $_.BaseName.substring(0, $_.BaseName.length - 8)

    #if the path contained "-" before the date, remove it
    if ($newPath.Substring($newPath.Length - 1) -eq "-") {
        $newPath = $newPath.Substring(0, $newPath.Length -2)

    #create the new path
    $newPath = "$outputPath\$newPath\$newPath $year"
    #copy the folder, contents included
    Copy-Item -Path $_.FullName -Destination $newPath -Recurse

    #check if the copy was succesfull. If yes, then delete the original folder
    if (Test-Path $newPath) {
        Remove-Item $_.FullName -Recurse -Force

Open in new window

This will look for all folders that finish in "02-2014" (or however you change the variables to), then copy them according to the format in the output folder, test if the copy was done and then delete the original folders.


Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today

From novice to tech pro — start learning today.