2016-09-12 5 views
0

Ich mache ein Batch-Skript, um alle .doc, .pdf, .xls usw. von der Festplatte auf einen USB-Stick zu kopieren.Kopieren mehrerer Dateien mit * .extension mit xcopy

Mein aktueller Code unten:

@echo off 
Title "" 

::All Docs 
XCOPY C:\*.doc W:\xdatabase /C /S /I /F /H > W:\database\XC\AllInf.txt 

::All PDFs 
XCOPY C:\*.pdf W:\xdatabase /C /S /I /F /H >> W:\database\XC\AllInf.txt 

::All WRI 
XCOPY C:\*.wri W:\xdatabase /C /S /I /F /H >> W:\database\XC\AllInf.txt 

::All TXT 
XCOPY C:\*.txt W:\xdatabase /C /S /I /F /H >> W:\database\XC\AllInf.txt 

::All PPT 
XCOPY C:\*.ppt W:\xdatabase /C /S /I /F /H >> W:\database\XC\AllInf.txt 

::All XLS 
XCOPY C:\*.xls W:\xdatabase /C /S /I /F /H >> W:\database\XC\AllInf.txt 

Die Frage ist: Wie kann ich mehr Erweiterungen hinzufügen, aber alle, die Vervielfältigung im Code vermeiden?

Antwort

3

Immer wahr, in allen Programmiersprachen: Wenn Sie eine Sache mehrmals hintereinander machen müssen, verwenden Sie eine Schleife.

@echo off 
Title "" 

for %%e in (doc pdf wri txt ppt xls) do (
    XCOPY "C:\*.%%e" W:\xdatabase /C /S /I /F /H > W:\database\XC\AllInf.txt 
) 

Die for Schleife kann im Batch-Scripting schwierig sein. Eine praktische Anleitung ist hier: http://ss64.com/nt/for.html

+0

Oh, ich bin dankbar, dass genau das, was ich gefragt thks viel –

+0

Vergessen Sie nicht, die Antwort als akzeptiert zu markieren, wenn es Ihr Problem gelöst hat. – Tomalak

+0

Bereits erledigt! : D –

-2

leider, nein, können Sie nicht. Die Platzhalter können nicht gemischt werden, Sie können nur eine Peerzeit verwenden.

+0

Thaks für die Antwort –

Verwandte Themen