Вы столкнулись с двумя проблемами здесь.
Во-первых, вы сказали move
только копировать файлы с именем, которое соответствует шаблону *.*
. Dir1
и Dir2
оба не совпадают *.*
(Ни один из них не имеет " .
" (Точка) в имени). @Seth указал на это в комментарии к вашему оригинальному сообщению.
Вторая проблема заключается в том, что move
не имеет нормального (imho) поведения, когда вы просите его переместить папку и файл одновременно. Move просто отказывается перемещать папку, если что-то еще пытается быть перемещено одновременно:
Перемещает каталог в другой каталог:
move C:\Source\Dir1 C:\Dest\
(теперь C:\Dest\Dir1
существует)
Перемещает файлы только на верхнем уровне внутри C:\Source\
:
move C:\Source\* C:\Dest\
(теперь существует C:\Dest\abc.files
)
Выдает синтаксическую ошибку, когда вы пытаетесь переместить две папки одновременно (у меня не работает ни один синтаксис)
move C:\Source\Dir1,C:\Source\Dir2 C:\Dest\
move C:\Source\Dir1 C:\Source\Dir2 C:\Dest\
Документация для move
предполагает, что вы должны иметь возможность указать несколько файлов и папок для перемещения одновременно с запятой (,
), разделяющей файлы, которые нужно переместить, но это, похоже, не работает для меня.
Документация говорит, что Moves files and renames files and directories.
предполагая, что он действительно не может перемещать каталоги ...
Поэтому я не думаю, что есть решение, которое работает для вас с помощью команды move
, доступной на DOS-совместимых машинах. Однако в более поздних версиях Windows доступны и другие новые команды, которые, вероятно, будут работать. xcopy
является популярным. К сожалению, это не работает для меня, потому что xcopy
не выполняет перемещение на уровне файловой системы, а только копирует, а затем удаляет оригинал. Это хорошо для небольших файлов, но может иметь катастрофические последствия для больших файлов.