使用bat批处理复制文件到目录

使用bat批处理读取txt文件中的文件名list,并将文件复制到指定目录下。

需求

想要从有多个深层目录下的众多文件中挑选出部分文件,并且保留目录结构,一个一个去找比较麻烦,就写了这个批处理。

示例

例子中的注释已经比较详细了,直接看就能明白,使用时注意修改 txt文件名目录路径

test.bat

::声明更改代码页为UTF-8
chcp 65001
@echo off
echo ------------------开始---------------------
:: for循环逐行读取test.txt
for /f %%i in (test.txt) do (
::设置本地为延迟扩展。其实也就是:延迟变量,
::开始与终止批处理文件中环境改动的本地化操作。
::在执行 Setlocal 之后所做的环境改动只限于批处理文件。
::要还原原先的设置,必须执行 Endlocal。
SetLocal EnableDelayedExpansion
::打印读取到的值到控制台
echo %%i
::设置变量str,并设置为%%i的值
set str=%%i
::替换str中的from为to
Set str=!Str:from=to!
::将替换后的值写到1.txt
echo !str!>>1.txt
::复制%%i 到 str,取消提示“是文件名还是目录名”,默认选择复制文件f,文件夹d,
echo f | xcopy %%i !str! /Y >>log.log
EndLocal
)
echo ------------------结束---------------------
::删除文件
del 1.txt
echo. & pause

test.txt

C:\test\from\1\1.txt
C:\test\from\1\11\11.txt
C:\test\from\1\11\111\111.txt
C:\test\from\2\2.txt
C:\test\from\2\22\22.txt
C:\test\from\2\22\222\222.txt
C:\test\from\3\3.txt
C:\test\from\3\33\33.txt
C:\test\from\3\33\333\333.txt

image

image

posted @   Mazy_699  阅读(3005)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示