Например
Куда делась folder3?
редактировать 1: предполагается, что в папке 3 уже существуют папка 4, папка 5 и папка 6.
редактировать 2: Вот что я пытаюсь ... robocopy / move / s / e "% 1" "D: \ library"
редактировать 3: Код реестра
редактировать 4: Ожидается контекстное меню в W10.





Опция /MOVE удаляет исходную папку, в данном случае folder3, после копирования в новое место назначения.
Я вижу, вы используете и /s, и /e. Я думаю, вы можете упростить свою команду и выбрать либо /s, который не копирует пустые каталоги, либо /e, который БУДЕТ копировать пустые каталоги.
Привет, Натан. Думаю, я забыл сказать, что папка 4, папка 5 и папка 6 изначально находились внутри папки 3. Я хочу автоматизировать команду, которая делает то же самое, когда мы выбираем папку и нажимаем CRTL + X CTRL + V, чтобы переместить ее, следовательно, необходимо сохранить пустые папки, если они существовали в исходной структуре.
Базовый синтаксис команды Robocopy:
robocopyисходный каталогкаталог назначения [шаблон ...] [опции]
Если шаблон не задан, шаблон по умолчанию - *.*.
Кверент, вероятно, сказал что-то вроде
robocopy C:\folder1\folder2\folder3 D:\library /move /s /e
^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^
source directory destination options
Эта команда указывает RoboCopy переместить все (шаблон по умолчанию в *.*) файлы и каталоги, которые он находит в C:\folder1\folder2\folder3, в D:\library. Robocopy сделал это, как и ожидалось.
Чтобы переместить каталог folder3 из C:\folder1\folder2 в D:\library, используйте команду
robocopy C:\folder1\folder2\folder3 D:\library\folder3 /move /e
^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^
source directory destination options
Robocopy при необходимости выполнит Создайте целевой каталог D:\library\folder3. Обратите внимание, что опция /e подразумевает /s.
Поскольку вопрос, похоже, относится к тому, как это сделать в пакетном файле, и предполагая, что %1 не заканчивается обратной косой чертой, я предлагаю заменить robocopy /move /s /e "%1" "D:\library" на
robocopy /move /s /e "%1" "D:\library\%~nx1"
Привет, Алекс. Так я и узнал. В моем случае я не могу вставить имя исходной папки в путь назначения, потому что мне нужна команда для автоматизации этой информации с помощью выбора папки.
На данный момент трудность заключается в том, чтобы место назначения воссоздало имя исходной папки без моего объяснения буквально, только с помощью "% 1" или другого синтаксиса, который я не знаю.
Отредактировал ответ.
Похоже, твоя последняя правка убила половину проблемы. Я пытался "D: \ library \% 1", и у меня исчезла только папка. С вашим предложением "D: \ library \% ~ nx1" я смог создать папку с исходной структурой, за исключением ее имени, которое теперь было названо "% ~ nx1". Я приложил несколько фотографий, чтобы лучше прояснить ситуацию.
Ах, теперь я понимаю. Вы пытаетесь использовать команду непосредственно в определении пункта меню. Там это не сработает; вам необходимо передать пути к исходному и целевому каталогам пакетному сценарию.
Вопросы о том, как использовать служебные программы операционной системы (такие как
robocopy), лучше всего задавать суперпользователю, а не stackoverflow (stackoverflow действительно предназначен для вопросов программирования).