Board logo

标题: [文本处理] [已解决]批处理 如何复制同盘不同目录下的不同类型的文件到当前目录下指定文件夹中 [打印本页]

作者: Cyccllee    时间: 2015-3-1 22:37     标题: [已解决]批处理 如何复制同盘不同目录下的不同类型的文件到当前目录下指定文件夹中

本帖最后由 Cyccllee 于 2015-3-2 00:01 编辑

自己写了一个比较繁琐的能实现,其实不止几个子文件夹,有很多。另:该.bat文件只能放在目标文件夹下。
样本如下:

set a="D:\Total\1"
set b="D:\Total\2"
set c="D:\Total\3"

for /r %a% %%i in (*.png) do (xcopy %%i .\Photo\ /Y)
for /r %b% %%i in (*.png) do (xcopy %%i .\Photo\ /Y)
for /r %c% %%i in (*.png) do (xcopy %%i .\Photo\ /Y)

for /r %a% %%i in (*.txt) do (xcopy %%i .\Document\ /Y)
for /r %b% %%i in (*.txt) do (xcopy %%i .\Document\ /Y)
for /r %c% %%i in (*.txt) do (xcopy %%i .\Document\ /Y)

for /r %a% %%i in (*.mp3) do (xcopy %%i .\Music\ /Y)
for /r %b% %%i in (*.mp3) do (xcopy %%i .\Music\ /Y)
for /r %c% %%i in (*.mp3) do (xcopy %%i .\Music\ /Y)

不怎么精通For循环,想问问大神们还有更简单的写法么?
作者: pcl_test    时间: 2015-3-1 22:50

回复 1# Cyccllee
  1. @echo off
  2. ::设定目录
  3. cd /d "D:\Total\"
  4. for /f "delims=" %%a in ('dir /ad /b') do (
  5. pushd "%%a"
  6. copy /y *.png "D:\Photo\"
  7. copy /y *.txt "D:\Document\"
  8. copy /y *.mp3 "D:\Music\"
  9. popd
  10. )
  11. pause
复制代码

作者: Cyccllee    时间: 2015-3-1 23:10

回复 2# pcl_test

呃。。。要复制的文件指定在D:\Total\1 D:\Total\2 D:\Total\3 这些文件夹下,会有很多指定文件夹,但也有不包括的文件夹。。如果有D:\Total\4 文件夹,其中*.png, *.txt, *.mp3其实是不需要复制的。
作者: pcl_test    时间: 2015-3-1 23:16

回复 3# Cyccllee

说的一塌糊涂,把实际情况说清楚,谁知道你哪些文件夹不需要呢?
作者: pcl_test    时间: 2015-3-1 23:42

回复 3# Cyccllee
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for %%a in (1 2 3) do call :aa %%a
  4. pause & exit
  5. :aa
  6. for /r "D:\Total\%1\" %%b in (.) do (
  7. set "tdir=%%b"
  8. set "tdir=!tdir:~0,-1!"
  9. pushd "!tdir!"
  10. for %%i in (*.jpg *.png *.bmp) do copy /y "%%i" "D:\Photo\"
  11. for %%i in (*.txt *.docx) do copy /y "%%i" "D:\Document\"
  12. for %%i in (*.mp3 *.wav *.wma) do copy /y "%%i" "D:\Music\"
  13. popd
  14. )
  15. goto :eof
复制代码

作者: Cyccllee    时间: 2015-3-1 23:54

回复 4# pcl_test

是同盘 下指定的文件夹,不是同盘下的文件夹。

这样说,应该好理解一点。。 不好意思,语言组织能力不好。。。
作者: Cyccllee    时间: 2015-3-2 00:00

回复 5# pcl_test

谢谢你的回答,我的问题已经解决~


作者: pcl_test    时间: 2015-3-2 00:02

回复 6# Cyccllee
同盘下指定的文件夹不是包括同盘下的文件夹吗?同样,同盘下的文件夹不也包括同盘下指定的文件夹吗?你的问题其实不难,所以,只要你能把问题说清楚,一切好办,而且我也给了两段代码,你应该也有一点批处理基础,参考我给的这两段代码你也可以试试自己把代码编出来




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2