If you wish to copy the sub-folders, and their contents, from one folder to another, based upon the sub-folder name meeting the requirements of a mask, maskcopy.bat will do it. The syntax is:

maskcopy source mask target

where:

<b>source</b>   is the path to the source folder. Example "C:\Documents and Settings".

<b>mask</b>     is a string that specifies the matching. If the string does <b>NOT</b> end in a asterisk (*),
                the source sub-folder length must be equal to the mask length. Examples:
                <b>J*</b>      will copy all sub-folders that begin with a <b>J</b> or <b>j</b>.
                <b>J??</b>     will copy all sub-folders that are 3 characters in length and start with a <b>J</b> or <b>j</b>.
                <b>?ABC*</b>   will copy all sub-folders that start with any character, have <b>ABC</b> or <b>abc</b> as it's
                        2nd, 3rd, and 4th characters.
                <b>?ABC?</b>   will copy all sub-folders that start with any character, have <b>ABC</b> or <b>abc</b> as it's
                        2nd, 3rd, and 4th characters, and is 5 characters in length.
                <b>?ABC</b>    will copy all sub-folders that start with any character, have <b>ABC</b> or <b>abc</b> as it's
                        2nd, 3rd, and 4th characters, and is 4 characters in length.

<b>Target</b>   is the path to the target folder. Example: D:\Users.
maskcopy.bat contains:
@echo off
setlocal
if not exist %1 goto syntax
if not exist %3 goto syntax
set source=%1
set mask=%2
set target=%3
set target=%target:"=%
set smask=%source%\%mask%
set smask="%smask:"=%*"
set source=%source:"=%
set source=%source%set work=%mask%!
set /a cnt=-1
:mcl
set /a cnt=%cnt% + 1
call :len %cnt%
if NOT "%char%" EQU "!" goto mcl
set /a cnt=%cnt% - 1
call :len %cnt%
set last=%char%
:mok
for /f "tokens=*" %%i in ('dir /s /b /ad %smask%') do call :parse "%%i"
endlocal
goto :EOF
:syntax
@echo Syntax: maskcopy Source Mask Target
endlocal
goto :EOF
:parse
set new=%1
for /f "Tokens=*" %%j in ('@echo %%new:%source%^=%%') do set sub=%%j
set sub=%sub:"=%
if "%last%" EQU "*" goto xcpy
set work=%sub%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
call :len %cnt%
if "%char%" EQU "!" goto :EOF
if "%last%" EQU "?" goto xtst
if /i NOT "%char%" EQU "%last%" goto :EOF
:xtst
set /a cnt=%cnt% + 1
call :len %cnt%
if NOT "%char%" EQU "!" goto :EOF
:xcpy
xcopy %new% "%target%\%sub%" /s /i /y
goto :EOF
:len
for /f "Tokens=*" %%i in ('@echo %%work:~%1^,1%%') do set char=%%i