无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 3448|回复: 15
打印 上一主题 下一主题

[求助] 求一个批量复制文件及文件夹的批处理

[复制链接]
1#
发表于 2022-3-22 21:41:51 | 显示全部楼层
命令 dir /b /a:-d  输出只显示 文件名,不会显示 文件夹,
修改只需将 参数 /a:-d 去掉 就可以了。

set "out_folder=D:\3"

for /f %%a in (xxx.txt) do (

    for /f "delims=" %%b in ('dir /b /s  %%a') do (

        xcopy /y "%%b" "%out_folder%"

    )

这个批处理对于在不同文件夹下,如果有相同文件名或子文件夹的情况,则没有考虑复制时,是否覆盖的情况

点评

可不可以按目录复制,就是一个文件的路径为\1\2\3.txt,把这个文件复制到D:\4,复制完成后3.txt的路径为D:\4\1\2\3.txt  详情 回复 发表于 2022-3-23 00:17
回复

使用道具 举报

2#
发表于 2022-3-24 14:44:41 | 显示全部楼层
本帖最后由 yfwang0798 于 2022-3-24 14:55 编辑

@echo off
rem set base_dir=\1
set out_folder="D:\3"
if  not exist %out_folder% mkdir %out_folder%
rem 批处理文件和 xxx.txt在同一个文件夹


setlocal enabledelayedexpansion
for /f %%a in (xxx.txt) do (
set full=%%a
set name=%%~na     

   if not exist !full!\  (
    xcopy /y !full!  %out_folder%
  )  else ( if not exist %out_folder%\!name! mkdir %out_folder%\!name!
   xcopy /y /e /i  !full!  %out_folder%\!name! )
   


)
start "" %out_folder%

点评

谢谢大佬  详情 回复 发表于 2022-3-24 18:00
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-5-31 15:34

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表