ОК, я понял это. Если вы пишете файл moveirs.bat, содержащий одну строку
for /d %%X in (%1) do move %%X %2\%%~nX
И затем запустите его (с аргументом 1, являющимся маской для каталогов, которые я хочу переместить, и аргументом 2, являющимся каталогом, в который я хочу переместить каталоги), как
C:\>movedirs.bat C:\WINNT\Temp\ABC* H:\SOMEOTHERPLACE\
Создает эффект, который я хочу.
Аргумент / d в 'for' обеспечивает обработку только каталогов. Модификатор '~ n' в переменной %% X означает, что исходное имя подкаталога (в отличие от полного пути) используется в качестве цели во втором аргументе командной строки.
Просто ради потомков, исследуя это, я сделал нечто похожее с xcopy, но тогда мне пришлось бы заняться удалением исходного кода, чтобы в моих целях перемещение работало лучше, но для записи вот та же идея, обернутая вокруг xcopy.
for /d %%X in (%1) do xcopy %%X %2\%%~nX /E /I
Для обработки каталогов как с расширениями, так и без них, например, для указанной выше команды "C: \ MyDir * .MyExt" потребуется комбинированный модификатор (имя файла + расширение) "~ nx":
for /d %%W in (%1) do xcopy %%W %2\%%~nxW /E /F /R /Y /I