Скопируйте файлы с точной структурой в другой каталог, используя XCopy

Думаю, я хочу скопировать этот файл C:\Majid\File\text.txt в D:\Copied (C:\Majid\File\text.txt ---> D:\Copied)

Я хочу использовать Xcopy, чтобы скопировать этот файл с полным каталогом в D:\Copied, тогда у меня должно быть что-то вроде этого ---> D:\Copied\Majid\File\text.txt , как вы видите, буква диска удалена, а все остальные каталоги созданы в целевом каталоге.

Как я могу сделать это действие с помощью XCopy?


person Inside Man    schedule 05.09.2011    source источник
comment
вы планируете выполнить эту команду вручную из консоли или из программы, которую вы сделали сами? Какой язык? Если выполнение вручную, это не относится к SO!   -  person Davide Piras    schedule 05.09.2011
comment
Я не согласен с Давиде, я думаю, что это резонный вопрос.   -  person Toby Allen    schedule 05.09.2011


Ответы (5)


видеть это:

КОМАНДА XCOPY

... Синтаксис xcopy Source [Destination] [/w] [/p] [/c] [/v] [/q] [/f] [/l] [/g] [/d[:mm-dd- гггг]] [/u] [/i] [/s [/e]] [/t] [/k] [/r] [/h] [{/a|/m}] [/n] [/ o] [/x] [/exclude:file1[+[file2]][+[file3]] [{/y|/-y}] [/z] ...

то, что вы найдете интересным на этой странице, это:

/s: Копирует каталоги и подкаталоги, если они не пусты. Если вы опустите /s, xcopy будет работать в пределах одного каталога.

person Davide Piras    schedule 05.09.2011
comment
Привет, Давиде, у меня есть приложение, которое отслеживает каталог на наличие новых файлов, после чего вы можете выполнить приложение для этих файлов, я хочу использовать для него Xcopy. Команда /s не работает. Представьте, что мой файл C:\Majid\Text.txt. Если я использую /s, он копирует только text.txt и не создает папку Majid в папке назначения. Что я должен делать? - person Inside Man; 05.09.2011

set sourceFolder="C:\test\new folder\text.txt"
set destinationFolder=%sourceFolder:~3,-1%
echo %destinationFolder%

xcopy %sourceFolder%  "D:\xcopied%destinationFolder%"

Что-то подобное может сработать. Удалите первые несколько символов источника ("C:"), затем добавьте символы папки назначения ("D:\xcopied").

person daniel    schedule 08.01.2012
comment
Привет, Даниэль, хороший ответ, но он задаст вопрос во время выполнения. Он спросит, что целевой каталог является именем файла или каталогом, и я должен ввести F или D. Я не хочу видеть это сообщение и установить для него параметр по умолчанию Д. Как этому Даниэлю? Спасибо за ваш хороший ответ еще раз :) - person Inside Man; 11.01.2012

этот был хорош для меня

xcopy $(SolutionDir)Libs\YourFolder\* $(TargetDir)YourFolder /s /i /r

источник

person Wahid Bitar    schedule 29.08.2015

Вот:

set sourceFolder="C:\Users\User\Desktop\34\*"
set destinationFolder=%sourceFolder:~3,-1%

xcopy %sourceFolder%  "D:\xcopied%destinationFolder%" /s /i /r

на основе ответов @daniel и @WahidBitar. Спасибо мужики ;)

person Inside Man    schedule 07.05.2017

попробуйте что-то вроде этого:

System.Diagnostics.Process.Start
("XCOPY.EXE", "/E /I /Y " + filename + " " 
+ pfadauswahl + "Backup\\" + dt.ToString("yyyy-MM-dd") 
+ "\\UserData\\" + File_Name + "* ");

со звездой в конце строки я избавился от вопроса, является ли это файлом или каталогом... поскольку вы ничего не указали о том, как вы хотите его использовать... вот решение для С#

person incubuzz1978    schedule 06.05.2013
comment
Вопрос про XCopy из командной строки. Он ничего не спрашивает о C# или Process.Start, а ваш ответ полон переменных и вызовов функций, которые ничего не значат из командной строки. Я не уверен, как это должно отвечать на заданный здесь вопрос. - person Ken White; 26.09.2013