批量脚本限制重复副本

时间:2014-04-19 13:45:55

标签: batch-file copy

我制作了一个脚本,可以创建4个文件夹图像,文档,程序和其他文件夹。该脚本查看所选目录并相应地将文件复制到文件夹,但我的问题是如何限制复制到指定文件夹的文件也不能复制到“其他”文件夹?

这是脚本的一部分:

:run1

mkdir %var2%\%1\Images

copy "%var%\*.jpg" "%var2%\%1\Images" 

mkdir %var2%\%1\Documents

copy "%var%\*.docx" "%var2%\%1\Documents" 

mkdir %var2%\%1\Programs

copy "%var%\*.exe" "%var2%\%1\Programs" 

mkdir %var2%\%1\Other

copy "%var%" "%var2%\%1\Other" 

goto complete

2 个答案:

答案 0 :(得分:0)

这种事情应该有效:

:run1

pushd "%var2%"

for %%a in (Images Documents Programs Other) do mkdir "%~1\%%~a" 2>nul

for %%a in (jpg png bmp tif gif) do (
   copy "*.%%a" "%~1\Images"
   attrib +h "*.%%a"
)

for %%a in (doc docx txt pdf) do (
   copy "*.%%a" "%~1\Documents"
   attrib +h "*.%%a"
)

for %%a in (exe com bat cmd) do (
   copy "*.%%a" "%~1\Programs"
   attrib +h "*.%%a"
)

   copy "*.*" "%~1\Other"
   attrib -h "*.*"

popd
goto complete

答案 1 :(得分:0)

这种任务(和备份过程)是创建文件归档属性的原因。

:run1

    attrib +a "%var%\*"

    xcopy /i /m "%var%\*.jpg"   "%var2%\%1\Images" 
    xcopy /i /m "%var%\*.docx"  "%var2%\%1\Documents" 
    xcopy /i /m "%var%\*.exe"   "%var2%\%1\Programs" 
    xcopy /i /m "%var%\*"       "%var2%\%1\Other" 

goto complete

attrib +a将设置存档属性。 xcopy的/i开关将处理目录创建,/m要求xcopy仅复制具有存档属性集的文件,并在复制文件时删除该属性。这样,最后一个命令将只复制未复制的文件。