You could use the built-in PowerShell 3.0 tool in Windows (8+?).
Open PowerShell 3.0 and choose a prefix filter, search path, and a destination directory.
Example of a command:
Get-ChildItem -Directory -Recurse -Path "C:\Users\John\Desktop" -Filter "A-*" | foreach {Move-Item -Path $_ -Destination "C:\Users\John\Documents\Destination-folder" }
Analysis of the command
Get-ChildItem -Directory
Gets the directories in the specified location
-Recurse
Also checks sub-directories' sub-directories'...
You can leave this out if you only need to check directories in one folder.
-Path "C:\Users\John\Desktop"
Specifies the path you want to search for directories in
-Filter "A-*"
Only selects directories starting with "A-" (This is your prefix). The * is a wildcard which tells PowerShell not to care about what the rest of the directory name.
|
The "pipe" character sends the output of the first command (Get-ChildItem) to the next command (for further processing)
foreach { }
Classic for-loop that does a specified action on each item (aka each directory from Get-ChildItem)
foreach {Move-Item -Path $_ -Destination "C:\Users\John\Documents\Destination-directory" }
Move the item "$_" (a variable that represents each item (directory) Get-ChildItem sends) to the specified destination directory.