2008-10-29 10 views

Antwort

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

Verwenden/Y am Ende des obigen Befehls, wenn Sie mehrere Dateien kopieren und wollen nicht mit „Ja“ zu halten, zu beantworten.

+0

netter ein. war der Syntax nicht sicher. – Ady

+0

ohne das Komma –

+13

Verwenden Sie "%% x" in einer Batch-Datei – bob

-2

Ich kenne keine Befehlszeilentools, die dies direkt tun, aber Sie könnten ein Stapelskript erstellen, um Unterordner durchzulaufen und die benötigten Dateien zu kopieren.

Sie können jedoch Dateien mit doppelten Dateinamen erhalten, wenn Sie sie alle im selben Ordner ablegen.

-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

Befehl XCOPY

Beispiel für das Kopieren Ordner rekursiv:

mkdir DestFolder 
xcopy SrcFolder DestFolder /E 

(wie in dem Kommentar folgenden WIKI unten angegeben, die seit DOS 3.2 verfügbar wurde Befehl gemacht)

+2

+1. Beachten Sie jedoch, dass XCOPY nicht nur in Windows 7 ist ... es ist für immer gewesen (nach http://en.wikipedia.org/wiki/XCOPY, seit DOS 3.2) –

+2

Könnte für jemanden hilfreich sein, tut es aber nicht scheinen mit ** übereinzustimmen "Ich möchte die Ordnerhierarchie im Zielordner nicht neu erstellen." ** von OP. – nrodic

+0

@nrodic, wenn ich es richtig verstehe, bezieht sich diese Erwartung auf die Vermeidung der Wiederherstellung der Quellordnerhierarchie manuell, so dass der obige Befehl den SrcFolder mit der gesamten Ordnerstruktur rekursiv (und Dateien) kopiert. – Bronek

0

Stellen Sie sicher, dass die Anführungszeichen richtig sind, wenn Sie Leerzeichen in Ihrem Pfad haben.

Dies ist mein Postbuild-Ereignis für meinen TFS-Build-Server (deshalb gibt es "%%"). Ich brauchte alle zu kopierenden Testdateien.

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 
Verwandte Themen