Ⅰ 如何使用bat批量按文件夹名称筛选文件夹并复制到指定地方
@echo off & title 根据列表复制文件夹到指定位置 By 依梦琴瑶
::设置文件夹列表文件
set List=FolderList.txt
::设置主源目录
set SrcFolder=D:\源目标目录
::设置指定保存目录
set SavFolder=E:\最终保存目录
for /f "delims=" %%a in ('type "%List%"') do (
if exist "%SrcFolder%\%%~a\." (
x /s /e /y "%SrcFolder%\%%~a\" "%SavFolder%\%%~a\"
) else (
echo 指定的目录 "%%~a" 不存在。
)
)
pause
脚本保存编码务必设为ANSI,以免中文字符出现乱码。
Ⅱ 怎么用bat复制指定的一个文件到指定文件夹,并重命名
脚本保存时的编码务必设为ANSI,您包含文件名的文件列表文本,编码也要使用ANSI,否则中文字符会出现乱码现象,从而导致脚本执行报错。
@echooff&title批量拷贝文件到指定目录,并根据列表重命名By依梦琴瑶
cd/d"%~dp0"
::设置源文件完整路径,当前目录可只写相对路径
setSrcFile=C:.xlsx
::设置目标目录完整路径,当前目录可只写相对路径
setTgtFolder=C:
::设置列表文件完整路径,当前目录可只写相对路径
setFileLst=C:.txt
ifnotexist"%TgtFolder%."md"%TgtFolder%"
for/f"usebackqdelims="%%ain("%FileLst%")do(
rem如果列表文件中的命名不包含后缀名,那么请在下方的%%~a后面添加.xlsx后缀名
/y"%SrcFile%""%TgtFolder%\%%~a"
)
pause
set"Va="
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%"
Ⅲ 在bat脚本中实现复制文件
bat 是批处理文件,主要用于 DOS 和 Windows 操作系统中。
.bat 文件的内容,是由一系列命令构成,每一行通常是一条命令,这些命令是以字符的形式,通过命令解释器进行执行(与 Windows 常见的鼠标点击运行不同)。
复制文件的最常用的命令是: 。相关的资料如下:
COPY [/D[1] ] [/V] [/N] [/Y | /-Y] [/Z] [/A | /B ] source [/A | /B]
[+ source [/A | /B] [+ ...]] [destination [/A | /B]]
各参数代表的含义:
source 指定要复制的文件。
/A 表示一个 ASCII 文本文件。
/B 表示一个二进位文件。/D 允许解密要创建的目标文件
destination 为新文件指定目录和/或文件名。
/V 验证新文件写入是否正确。
/N 复制带有非 8dot3 名称的文件时,
尽可能使用短文件名。
/Y 不使用确认是否要覆盖现有目标文件的提示。
/-Y 使用确认是否要覆盖现有目标文件的提示。
示例:
将 D:\目录\ 下的所有 txt 文件,复制到 D:\目标目录 下。
D:\目录\*.txt D:\目标目录
Ⅳ 写一条批量复制文件夹的批处理.bat命令
1 建bat文件自动执行复制,删除命令。
例1:以下是复制cd.dll文件至windows\system32的bat文件内容:
cd.dll %windir%\system32
例2:下面一行是卸载windows\system32目录中的cd.dll,即把上面复制的文件删除:
del %windir%\system32\cd.dll
例3:删除download文件夹中的文件,例子如下:
del C:\DOWNLOAD\*.*
[注意]:这里的del命令只能删文件,不能删文件夹。要删除文件夹得用rd命令,如下:
rd Filemon
这里filemon文件夹和该bat文件在同一目录下,就省去具体路径了。但rd只能删除空文件夹.
要删除文件夹及其里面的所有子目录和文件,用rd命令带/s /q参数,
/s参数表示删除该文件夹及其下面的子目录和文件
/q参数表示,不需要确认
2 创建文件夹
例:在E:\My documents下面一次创建3个新文件夹:Newfolder1,Newfolder2,Newfolder3
@echo off
md "E:\My documents\Newfolder1"
md "E:\My documents\Newfolder2"
md "E:\My documents\Newfolder3"
3 执行程序,打开文件或目录
例1:打开指定目录,如C:\Test
start C:\Test
例2:执行C盘下的WinWord.exe程序
start C:\WinWord.exe
例3:用某个程序打开某个文件,如用TheWorld.exe打开一个htm文件
start d:\TheWorld\TheWorld.EXE C:\我有一个恋爱.htm
[注意]:不论是程序或文件路径中含有空格,都必须用引号括起来:
start d:\TheWorld\TheWorld.EXE "e:\My documents\我有一个恋爱.htm"
所有程序中的引号不能是全角的,必须用半角的格式,所以输入引号前最好关闭汉字输入系统
4. 拷贝文件夹 XCOPY
XCOPY命令可用于复制文件和目录,包括子目录。 其功能多数是通过增加参数来实现的。
XCOPY source [destination] 参数(如 /s /e)
source 指定要复制的文件。
destination 指定新文件的位置和/或名称。
/A 只复制有存档属姓集的文件,
但不改变属姓。
/M 只复制有存档属姓集的文件,
并关闭存档属姓。
/D:m-d-y 复制在指定日期或指定日期以后改变的文件。
如果没有提供日期,只复制那些源时间
比目标时间新的文件。
/EXCLUDE:file1[+file2][+file3]...
指定含有字符串的文件列表。如果有任何
字符串与要被复制的文件的绝对路径
相符,那个文件将不会得到复制。
例如,指定如 \obj\ 或 .obj 的字符串会排除
目录 obj 下面的所有文件或带有
.obj 扩展名的文件。
/P 创建每个目标文件前提示。
/S 复制目录和子目录,除了空的。
/E 复制目录和子目录,包括空的。
与 /S /E 相同。可以用来修改 /T。
/V 验证每个新文件。
/W 提示您在复制前按键。
/C 即使有错误,也继续复制。
/I 如果目标不存在,又在复制一个以上的文件,
则假定目标一定是一个目录。
/Q 复制时不显示文件名。
/F 复制时显示完整的源和目标文件名。
/L 显示要复制的文件。
/G 允许将没有经过加密的文件复制到
不支持加密的目标。
/H 也复制隐藏和系统文件。
/R 改写只读文件。
/T 创建目录结构,但不复制文件。不
包括空目录或子目录。/T /E 包括
空目录和子目录。
/U 只复制已经存在于目标中的文件。
/K 复制属姓。一般的 X 会重设只读属姓。
/N 用生成的短名复制。
/O 复制文件所有权和 ACL 信息。
/X 复制文件审核设置(隐含 /O)。
/Y 禁止提示以确认改写一个
现存目标文件。
/-Y 导致提示以确认改写一个
现存目标文件。
/Z 用重新启动模式复制网络文件。
Ⅳ windows bat批处理复制文件操作(提取同类型文件到另一个文件夹)
同学让我帮忙处理数据,但是有365天的数据也就是365个文件夹,整体文件好几十个G,但是每个文件夹中有用的文件只有几个且很小,于是就准备写一个脚本文件对其进行批处理,反正也没学过,就搜集资料搞吧,搞好了详细写给大家看嘛。
同学的文件分布是这样的:
其中有用的文件是这样的,且每个文件夹中都类似:
明确了需求,直接把最后源码先看,再具体一行行讲:
下面是讲解,对应每行
(1)@为不输出当前行,echo off是取消显示命令
(2)mkdir是创建文件夹
(3)for循环中,脚本语言使用%%variable做变量,要加两个百分号,变量名大小写区分,/f的话就是遍历整体里面的内容,若不加则无法遍历file,后面的dir是当前路径,加参数(只列出当前用到的),也就是只按顺序输出文件夹名:
(4)输出一下文件夹名
(5)将文件夹中符合met_ . 格式的文件复制到result文件夹中,*是通配符,可以代表任何字符。后面的参数意义为: