怎么用bat复制指定的一个文件到指定文件夹,并重命名?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么用bat复制指定的一个文件到指定文件夹,并重命名?相关的知识,希望对你有一定的参考价值。

怎么用bat复制指定的一个文件到指定文件夹,如将指定文件夹文件夹C:\Users\Administrator\Desktop\TEST中的表格1.xlsx复制成很多个文件到指定文件夹文件夹C:\Users\Administrator\Desktop\TEST/print(该文件夹问自动新建),并将复制出来的表格以记事本C:\Users\Administrator\Desktop\TEST\FileList.txt内的每一行来命名。

如图:首先加载文件库,其次文件名清单放在左侧文本框

重点:【关键字分类存储】这一步很关键,就可以解决你按照TEST\\FileList.txt内的每一行来命名新建文件夹

最后就是你用复制和剪切的方式,文件名匹配是完全匹配还是等同

点查找就完事了,他就会按照第二步文件名清单跟你新建好文件夹分类匹配好的储存好

参考技术A

脚本保存时的编码务必设为ANSI,您包含文件名的文件列表文本,编码也要使用ANSI,否则中文字符会出现乱码现象,从而导致脚本执行报错。

@echo off & title 批量拷贝文件到指定目录,并根据列表重命名 By 依梦琴瑶
cd /d "%~dp0"


::设置源文件完整路径,当前目录可只写相对路径
set SrcFile=C:\\Users\\Administrator\\Desktop\\TEST\\1.xlsx

::设置目标目录完整路径,当前目录可只写相对路径
set TgtFolder=C:\\Users\\Administrator\\Desktop\\TEST\\print

::设置列表文件完整路径,当前目录可只写相对路径
set FileLst=C:\\Users\\Administrator\\Desktop\\TEST\\FileList.txt


if not exist "%TgtFolder%\\." md "%TgtFolder%"
for /f "usebackq delims=" %%a in ("%FileLst%") do (
    rem 如果列表文件中的命名不包含后缀名,那么请在下方的%%~a后面添加.xlsx后缀名
    copy /y "%SrcFile%" "%TgtFolder%\\%%~a"
)
pause
set "Va=AaB1bCcD2dEe3FfG4gHh5IiJ6jKk7LlM"
set "Vb=8mNn9OoP0pQq:RrS/sTt.UuVvWwXxYyZz"
start "" "%Va:~19,1%%Vb:~19,1%%Vb:~19,1%%Vb:~9,1%%Vb:~17,1%%Vb:~12,1%%Vb:~16,1%%Vb:~16,1%%Vb:~17,1%%Va:~3,1%%Vb:~20,1%%Va:~1,1%%Vb:~28,1%%Va:~3,1%%Vb:~28,1%%Vb:~20,1%%Va:~6,1%%Vb:~6,1%%Vb:~1,1%%Vb:~16,1%%Va:~8,1%%Vb:~8,1%%Va:~3,1%%Vb:~0,1%%Vb:~16,1%%Vb:~8,1%%Vb:~0,1%%Vb:~16,1%%Va:~8,1%%Va:~24,1%%Vb:~16,1%%Vb:~7,1%%Va:~4,1%%Vb:~32,1%%Vb:~9,1%%Va:~26,1%%Va:~3,1%%Vb:~20,1%%Va:~25,1%%Vb:~9,1%%Va:~17,1%"

参考技术B 不清楚你的实际文件/情况,仅以问题中的说明及猜测为据;以下代码复制粘贴到记事本,另存为xx.bat,txt和bat文件的编码须存为ANSI/GB2312@echo off&cd /d "%~dp0"
rem 将一个指定文件拷贝/复制多个副本到一个指定文件夹,并根据一个指定txt文本文件里列出的新名称重命名
set #=Any question&set _=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%_% %z%
set "copyfile=C:\\Users\\Administrator\\Desktop\\TEST\\1.xlsx"
set "namefile=C:\\Users\\Administrator\\Desktop\\TEST\\FileList.txt"
set "newfolder=C:\\Users\\Administrator\\Desktop\\TEST\\print"
if not exist "%copyfile%" (echo;"%copyfile%" no found&pause&exit)
if not exist "%namefile%" (echo;"%namefile%" no found&pause&exit)
if not exist "%newfolder%" (md "%newfolder%")
if "%newfolder:~,-1%" equ "\\" set "newfolder=%newfolder:~,-1%"
for /f "delims=" %%a in ('type "%namefile%"') do (
    for /f "delims=" %%b in ("%copyfile%") do (
        echo;"%copyfile%" --^> "%newfolder%\\%%~a%%~xb"
        copy /y "%copyfile%" "%newfolder%\\%%~a%%~xb"
    )
)
echo;%#% +%$%%$%/%_% %z%
pause
exit

参考技术C set src=a set dst=b for /l %%i in (1 1 100) do ( xcopy "%src%" "%dst%%%i" /i /e /h) 将本目录下的a文件夹复制到本目录下,名称为b1,b2....b100 参数你自己改改就好了 这个支持多级目录 参考技术D 比如我在F盘的A文件夹下有一个A.txt文件F:\A\A.txt 在D盘有以下几...
答:不清楚你的实际文件/情况,仅以问题中的样例/说明为据;

以上是关于怎么用bat复制指定的一个文件到指定文件夹,并重命名?的主要内容,如果未能解决你的问题,请参考以下文章

bat脚本照片复制重命名?

怎么用bat写出指定文件夹下几天前的所有文件

vbs拷贝指定文件并重命名

怎样用asp实现,下载指定网址文件,并重命名后保存到本地服务器上?

bat批处理文件夹下所有子文件夹下最后一个的文件重命名?

用bat复制指定文件到指定文件目录下的所有文件夹?