标题: [文本处理] [已解决]批处理 如何复制同盘不同目录下的不同类型的文件到当前目录下指定文件夹中 [打印本页]
作者: 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 - @echo off
- ::设定目录
- cd /d "D:\Total\"
- for /f "delims=" %%a in ('dir /ad /b') do (
- pushd "%%a"
- copy /y *.png "D:\Photo\"
- copy /y *.txt "D:\Document\"
- copy /y *.mp3 "D:\Music\"
- popd
- )
- 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 - @echo off
- setlocal enabledelayedexpansion
- for %%a in (1 2 3) do call :aa %%a
- pause & exit
- :aa
- for /r "D:\Total\%1\" %%b in (.) do (
- set "tdir=%%b"
- set "tdir=!tdir:~0,-1!"
- pushd "!tdir!"
- for %%i in (*.jpg *.png *.bmp) do copy /y "%%i" "D:\Photo\"
- for %%i in (*.txt *.docx) do copy /y "%%i" "D:\Document\"
- for %%i in (*.mp3 *.wav *.wma) do copy /y "%%i" "D:\Music\"
- popd
- )
- 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 |