从source folder 下将其所有子文件夹的*.* 文件拷贝到 target folder (不拷贝文件夹名仅拷贝文件)
因本人较懒,一直认为电脑能做的就让电脑来做,所以写下这个批处理的小脚本方便工作。
场景:碰到要拷贝一个文件夹(source folder)下的多个子文件夹(sub-folder)的文件到指定文件夹下(target folder),然后进行数据文件加载
@echo off
title copy files (*.*) from source folder( actutally it's sub-folder) to target folder by Frank v1.1
color 1f
setlocal EnableDelayedExpansion
set /p srcFolder= Please enter the source folder:
set /p tarFolder= Please enter the target folder:
for /f "delims=" %%i in ('dir !srcFolder! /b') do copy !srcFolder!\%%i\*.* !tarFolder!\
pause
总结: 这个脚本还有很多没考虑到的情况,如 文件夹下除了子文件夹还有其它非文件夹类型的 文件 该如何处理? 然后子文件夹下还有文件夹怎样实现递归copy?
这次的应用是满足了的,有时间再把没考虑到的弄一下。如果有看到的小伙伴想指点下思路可以回复我,哈哈!
今天把递归跟 非文件夹类型的 处理了下:
@echo off
title copy files (*.*) from source folder( actutally it's sub-folder recursively) to target folder by Frank v1.2
color 1f
setlocal EnableDelayedExpansion
set /p srcFolder= Please enter the src folder:
set /p tarFolder= Please enter the tar folder:
for /f "delims=" %%i in ('dir /ad /b /s !srcFolder!') do copy "%%i"\*.* !tarFolder!\
::copy !srcFolder!\%%i\*.* !tarFolder!\
pause
这个版本考虑到有多层子文件夹 /s 这个参数控制, /ad 控制 文件夹类型,以及完整文件夹名称带盘符。。。