2008-10-29 36 views

Trả lời

95
mkdir targetDir 
for /r %x in (*.dll, *pdb) do copy "%x" targetDir\ 

Sử dụng/Y ở cuối lệnh trên nếu bạn đang sao chép nhiều tệp và không muốn trả lời "Có".

+0

đẹp nhất. không chắc chắn về cú pháp. – Ady

+0

không có dấu phẩy –

+13

sử dụng "%% x" trong tệp lô – bob

-2

Tôi không biết bất kỳ công cụ dòng lệnh nào thực hiện việc này trực tiếp, nhưng bạn có thể tạo tập lệnh lô để lặp qua các thư mục con và sao chép các tệp bạn cần.

Tuy nhiên, bạn có thể kết thúc với các tệp có tên tệp trùng lặp nếu bạn đặt tất cả chúng trong cùng một thư mục.

-1
@echo off 
if %1'==' goto usage 
if %2'==' goto usage 
if %3'==' goto usage 
for /D %%F in (%1\*) do xcopy %%F\%2 %3 /D /Y 
for /D %%F in (%1\*.) do call TreeCopy %%F %2 %3 
goto end 
:usage 
@echo Usage: TreeCopy [Source folder] [Search pattern] [Destination folder] 
@echo Example: TreeCopy C:\Project\UDI *.xsd C:\Project\UDI\SOA\Deploy\Metadata 
:end 
35

lệnh XCOPY

ví dụ về thư mục sao chép một cách đệ quy:

mkdir DestFolder 
xcopy SrcFolder DestFolder /E 

(như nêu dưới đây trong các bình luận sau WIKI rằng lệnh đã được thực hiện có sẵn từ DOS 3,2)

+2

+1. Lưu ý, mặc dù, XCOPY không chỉ trong Windows 7 ... nó được khoảng mãi mãi (theo http://en.wikipedia.org/wiki/XCOPY, kể từ DOS 3.2) –

+2

Có thể hữu ích cho một ai đó nhưng không dường như phù hợp với ** "Tôi không muốn tạo lại hệ thống phân cấp thư mục trong thư mục đích." ** từ OP. – nrodic

+0

@nrodic, nếu tôi hiểu chính xác thì kỳ vọng này liên quan đến việc giải trí hệ thống phân cấp thư mục nguồn theo cách thủ công, vì vậy lệnh trên sao chép SrcFolder với toàn bộ cấu trúc thư mục đệ quy (và tệp). – Bronek

0

Đảm bảo rằng bạn có dấu ngoặc kép ngay nếu bạn có dấu cách trong đường dẫn của mình.

Đây là sự kiện postbuild của tôi cho máy chủ xây dựng TFS của tôi (đó là lý do tại sao có "%%"). Tôi cần tất cả các tệp thử nghiệm được sao chép.

if not exist "$(TargetDir)..\SingleFolderOutput" mkdir -p "$(TargetDir)..\SingleFolderOutput" 

for /r **%%x** in (*.dll, *.pdb, *.xml, *.xaml, *.exe, *.exe.config) do xcopy **"%%x"** "$(TargetDir)..\SingleFolderOutput" /Y 
Các vấn đề liên quan