使用xcopy通过* .extension复制多个文件

时间:2016-09-12 13:49:46

标签: batch-file xcopy

我正在制作一个批处理脚本,将所有.doc.pdf.xls等从磁盘复制到pendrive。

我目前的代码如下:

@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

问题是:如何添加更多扩展但避免代码中的所有重复?

2 个答案:

答案 0 :(得分:7)

在所有编程语言中总是如此:如果你必须连续多次做一件事,请使用循环。

@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
)

批处理脚本中的for循环可能很棘手。这里有一个方便的指南:http://ss64.com/nt/for.html

答案 1 :(得分:-2)

不幸的是,不,你不能。 通配符不能混用,只能使用一个对等时间。