1

Я пытаюсь создать командный файл, который должен перемещать файлы и каталоги + все подкаталоги из одного места в другое

Например, скажем, у меня есть эти:

C:\Source\abc.files  
C:\Source\Dir1\abc2.files  
C:\Source\Dir1\Sub1\abc3.files  
C:\Source\Dir2\xyz.files  

Когда я использую move C:\Source\*.* C:\Dest\ ONLY abc.files отображаются в папке назначения. Мне нужно все содержимое каталога Source со всем содержимым его подкаталогов

Со сторонними решениями (кроме DOS) все в порядке ... если они бесплатны и не содержат вирусов. знак равно

1 ответ1

1

Вы столкнулись с двумя проблемами здесь.

Во-первых, вы сказали 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 не выполняет перемещение на уровне файловой системы, а только копирует, а затем удаляет оригинал. Это хорошо для небольших файлов, но может иметь катастрофические последствия для больших файлов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .