Какой способ командной строки для перемещения содержимого каталога в другой каталог в Vista?

3

Я обычно люблю Vista, но я обнаружил, что ее средства перемещения файлов просто плохие.

У меня есть эти два каталога

C:\dir1\
C:\dir2\

Они оба содержат несколько подкаталогов, которые сами содержат файлы и подкаталоги и так далее. И они в основном имеют одинаковую структуру, но содержимое файлов отличается.

То, что я хочу сделать, это взять все подкаталоги C:\dir1\и переместить их в C:\dir2\, перезаписывая то, что в C:\dir1\.

Если я делаю это путем перетаскивания в Windows Explorer - это просто не работает. Он спрашивает, уверен ли я, что хочу слиться, но после этого он ничего не делает.

Если я делаю этот каталог за раз, иногда он работает, а иногда нет. И когда он работает, он оставляет исходный каталог на месте, пустой, что безвредно, но странно.

Какой хороший, автоматический и предпочтительный способ командной строки сказать «переместить содержимое этого каталога поверх содержимого этого каталога, да, я серьезно, да переписать все, нет, не задавайте мне больше вопросов, точка»?

Также, пожалуйста, скажите мне, если Windows 7 исправляет это дерьмо.

Том Кидд
источник

Ответы:

8

xcopy c: \ dir1 c: \ dir2 / E / H / R / X / Y / I / K

делает трюк.

Работает с Vista и 7 из командной строки.

Для информации, это то, что переключатели делают в этой команде:

  • / E Копирует каталоги и подкаталоги, в том числе пустые.
  • / H Копирует также скрытые и системные файлы.
  • / R Перезаписывает файлы только для чтения.
  • / X Копирует настройки аудита файлов (подразумевает / O).
  • / Y Подавляет запрос на подтверждение перезаписи существующего файла назначения.
  • / I Если место назначения не существует и копируется более одного файла, предполагается, что место назначения должно быть каталогом.
  • / K Копирует атрибуты. Обычный Xcopy будет сбрасывать атрибуты только для чтения.

Вы можете узнать больше информации, набрав xcopy /? в командной строке.

Если вы хотите завершить «перемещение», просто удалите c: \ dir1 с помощью rd c: \ dir1 / S / Q

Возможно, стоит поместить эти две команды в пакетный файл (текстовый файл с концом .cmd или .bat) с помощью Блокнота. Тогда вам просто нужно дважды щелкнуть ярлык.

Кез
источник