2011-09-05 46 views
5

Nghĩ rằng tôi muốn sao chép tập tin này C:\Majid\File\text.txt để D:\Copied (C:\Majid\File\text.txt ---> D:\Copied)Sao chép tập tin với cấu trúc chính xác vào một thư mục sử dụng Xcopy

Tôi muốn sử dụng xcopy để sao chép tập tin đó với thư mục đầy đủ của nó vào D:\Copied, sau đó tôi nên có một cái gì đó như thế này --->D:\Copied\Majid\File\text.txt, khi bạn thấy ký tự ổ đĩa bị xóa và tất cả thư mục khác được tạo trong thư mục đích.

Tôi có thể thực hiện hành động này bằng XCopy bằng cách nào?

+0

bạn có dự định thực hiện lệnh này theo cách thủ công từ bảng điều khiển hoặc từ một chương trình bạn đã tự tạo không? Ngôn ngữ nào? Nếu thực hiện thủ công thì điều này không thuộc về SO! –

+1

Tôi không đồng ý với Davide, tôi nghĩ đây là một câu hỏi hợp lý. –

Trả lời

0

Đây là:

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

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

dựa trên câu trả lời @daniel và @WahidBitar. Xin cảm ơn những người đàn ông;)

1

thấy điều này:

XCOPY COMMAND

... Cú pháp xcopy Nguồn [Điểm đến] [/ w] [/ p] [/ c] [/ v] [/ q] [/ f ] [/ l] [/ g] [/ d [: mm-dd-yyyy]] [/ u] [/ i] [/ s [/ e]] [/ t] [/ k] [/ r] [/h] [{/ a |/m}] [/ n] [/ o] [/ x] [/ loại trừ: tệp1 [+ [tệp2]] [+ [tệp3]] [{/ y |/-y} ] [/ z] ...

điều bạn sẽ thấy thú vị ở trang đó là:

/s: Sao chép thư mục và thư mục con, trừ khi chúng trống. Nếu bạn bỏ qua /s, xcopy hoạt động trong một thư mục duy nhất.

+0

Hi Davide, tôi có một ứng dụng giám sát một thư mục cho các tệp mới, sau đó bạn có thể thực thi một ứng dụng cho các tệp đó, tôi muốn sử dụng Xcopy cho nó./s lệnh sẽ không hoạt động. Hãy tưởng tượng tập tin của tôi là C: \ Majid \ Text.txt, Nếu tôi sử dụng/s nó chỉ sao chép text.txt và giành 'tạo thư mục Majid trên thư mục đích. Tôi nên làm gì? – Nofuzy

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

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

Điều gì đó tương tự có thể hoạt động. Xóa vài ký tự đầu tiên của nguồn ("C:"), sau đó thêm các ký tự cho thư mục đích ("D: \ xcopied").

+0

Hi daniel, Nice Answer, Nhưng nó sẽ hỏi một câu hỏi trong khi thực hiện. Nó sẽ yêu cầu thư mục đích là một tên tập tin hoặc thư mục, và tôi nên nhập F hoặc D. Tôi không muốn nhận thông điệp này và thiết lập tùy chọn mặc định của nó để D. Làm thế nào để Daniel? Cảm ơn câu trả lời tốt đẹp của bạn một lần nữa :) – Nofuzy

-1

thử một cái gì đó như thế này:

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

với ngôi sao ở cuối dòng, tôi đã thoát khỏi những câu hỏi nếu nó hoặc là một tập tin hoặc một thư mục .. vì bạn không nói rõ bất cứ điều gì trên làm thế nào bạn muốn sử dụng nó ... đây là giải pháp cho C#

+0

Câu hỏi là về XCopy từ dòng lệnh. Nó không hỏi gì về C# hay 'Process.Bắt đầu', và câu trả lời của bạn có đầy đủ các biến và các cuộc gọi hàm có nghĩa là không có gì từ dòng lệnh. Tôi không chắc làm thế nào đây là vụ phải trả lời câu hỏi được yêu cầu ở đây. –

1

này là tốt cho tôi

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

source

Các vấn đề liên quan