我试图通过批处理文件一次单击复制.pdf .docx和.zip文件。它工作得很完美,但问题是复制data.For示例需要很长时间,如果我想复制驱动器D的那些扩展名文件,批处理文件将首先运行以查找.pdf,而不是在搜索整个驱动器以查找.pdf之后,而不是去搜索.docx文件。如果它找到.pdf文件,那么我想在一个命令中这样做,而不是复制它,如果.docx比在一次搜索中做同样的操作。
这里是代码
@echo off
:: variables
/min
/w
SET odrive=%odrive:~0,2%
set backupcmd=xcopy /s /c /d /e /h /i /r /y
echo off
%backupcmd% "E:\MIEMS\Dropbox\Bahria\*.pdf" "%drive%\Personal\PICS\Wedding\Barat\MOVIEP"
%backupcmd% "E:\MIEMS\Dropbox\Bahria\*.docx" "%drive%\Personal\PICS\Wedding\Walima\MOVIED"
%backupcmd% "E:\MIEMS\Dropbox\Bahria\*.doc" "%drive%\Personal\PICS\Wedding\Walima\MOVIED"
%backupcmd% "E:\MIEMS\Dropbox\Bahria\*.zip" "%drive%\Personal\PICS\Wedding\Mehndi\MOVIEZ"
%backupcmd% "E:\MIEMS\Dropbox\Bahria\*.rar" "%drive%\Personal\PICS\Wedding\Mehndi\MOVIEZ"
%backupcmd% "C:\Users\%USERNAME%\MIEMS\Dropbox\Bahria\*.pdf" "%drive%\Personal\PICS\Wedding\Barat\MOVIEP3"
%backupcmd% "C:\Users\%USERNAME%\MIEMS\Dropbox\Bahria\*.docx" "%drive%\Personal\PICS\Wedding\Walima\MOVIED3"
%backupcmd% "C:\Users\%USERNAME%\MIEMS\Dropbox\Bahria\*.doc" "%drive%\Personal\PICS\Wedding\Walima\MOVIED3"
%backupcmd% "C:\Users\%USERNAME%\MIEMS\Dropbox\Bahria\*.zip" "%drive%\Personal\PICS\Wedding\Mehndi\MOVIEZ"
%backupcmd% "C:\Users\%USERNAME%\MIEMS\Dropbox\Bahria\*.rar" "%drive%\Personal\PICS\Wedding\Mehndi\MOVIEZ"
@echo off
cls我想做一些事情,比如它会被驱动E和特定的路径复制到一行代码中,比如在第一次搜索时,它会复制.pdf,如果找到了,找到了,如果docx存在,是的,复制它。
如果你们能帮我解决这个问题,会很有帮助的。
编辑了一个
@echo off
setlocal enabledelayedexpansion
set backupcmd=echo
set drive=N:
SET odrive=%odrive:~0,2%
echo off
set backupcmd=xcopy /c /d /h /i /r /y
set "files=C:\*.pdf C:\*.doc C:\*.docx C:\*.zip C:\*.rar"
for /f "delims=" %%i in ('dir /s /b %files%') do (
if "%%~xi"==".pdf" set "dest=D"
if "%%~xi"==".doc" set "dest=D"
if "%%~xi"==".docx" set "dest=D"
if "%%~xi"==".zip" set "dest=Z"
if "%%~xi"==".rar" set "dest=Z"
if "%%~di"=="C:" if "!dest!"=="Z" set "dest=!dest!3"
%backupcmd% "%%i" "%drive%\Personal\PICS\Wedding\Barat\MOVIE!dest!"
)
@echo off
cls

发布于 2015-10-29 08:18:32
这需要一段时间才能开始复制,因为它在处理文件之前构建了完整的文件列表。但它只扫描了一次磁盘。
@echo off
setlocal enabledelayedexpansion
set backupcmd=echo
set drive=N:
set "files=C:\*.pdf C:\*.doc C:\*.docx C:\*.zip C:\*.rar"
set "files=%files% E:\*.pdf E:\*.doc E:\*.docx E:\*.zip E:\*.rar"
for /f "delims=" %%i in ('dir /s /b %files%') do (
if "%%~xi"==".pdf" set "dest=D"
if "%%~xi"==".doc" set "dest=D"
if "%%~xi"==".docx" set "dest=D"
if "%%~xi"==".zip" set "dest=Z"
if "%%~xi"==".rar" set "dest=Z"
if "%%~di"=="C:" if "!dest!"=="Z" set "dest=!dest!3"
%backupcmd% "%%i" "%drive%\Personal\PICS\Wedding\Barat\MOVIE!dest!"
)当然,您不再需要xcopy的参数/s和/e了。
https://stackoverflow.com/questions/33408141
复制相似问题