bat脚本——提取多个文件夹到指定路径

本文将使用windows下的批处理(bat)脚本实现文件复制的一些功能,核心内容在于创建bat脚本、dir和xcopy等命令的使用。

xcopy和dir命令使用说明

windows系统下打开命令提示符(cmd)输入以下命令可以查看dir和xcopy的语法

dir /? 
xcopy /? 

问题1:将源路径下的所有内容复制到另一个路径(目标路径)

1. 提取源路径下的所有内容

在源路径下打开cmd,输入以下命令,可以将当前路径下的所有文件夹名、文件名写入到a.txt中,其中,/b表示使用空格式,没有标题和摘要

dir /b >a.txt

dir > a.txt 把当前路径下的所有文件夹名和文件名写入a.txt。

dir  /b/s >a.txt

"dir /b/s >a.txt"将当前路径下的所有文件夹和子文件夹名、文件名和子文件名写入到列表.txt。其中,/s表示子目录中的文件

2. 复制文件

@echo off

for /f "delims=" %%a in (列表.txt) do (
         md D:\temp\复制后
         xcopy  /y D:\temp\原始文件夹\%%a  D:\temp\复制后\%%a\  /s/e  )

md 是创建目标文件夹(当文件夹已存在时会提示)
xcopy

  • /y 是指当目标文件夹中有同名文件时,不再询问是否覆盖而是直接覆盖。
  • /s: 复制非空的目录和子目录。如果省略“/s”,则“xcopy”将在单个目录中工作。
  • /e: 复制所有子目录,包括空目录。将“/e”与“/s”和“/t”命令行选项一起使用。
  • /t: 只复制子目录结构(即目录树),不复制文件。要复制空目录,必须包含“/e”命令行选项。
  • 如果命令结尾%%a后面不写斜杠\就会问是目录还是文件,写上就会直接拷贝

for循环后面的参数

  • /d 查询目录
  • /f 查询文件

问题2:对比两个路径的文件夹目录,若目标路径缺少,则从源路径复制到目标路径。如果目标文件夹下缺少,则从源目录下拷贝相应文件夹至目标文件夹。list1.txt里列举了源目录下的所有子目录和文件名。

@echo off
set srcDir=D:\桌面\123\1
set destDir=D:\桌面\123\2
echo %srcDir%
echo %destDir%

for /f "delims=" %%a in (list1.txt) do (
    if not exist %destDir%\%%~na xcopy  /y %srcDir%\%%a  %destDir%\%%a\  /s/e  
)

pause

Windows批处理 把某个文件夹下的所有子文件夹及内的文件拷贝到指定一个文件夹下

  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值