首页 > 代码库 > 学习写一个能够将文件复制、解压到指定文件夹中的批处理文件
学习写一个能够将文件复制、解压到指定文件夹中的批处理文件
场景1:afoldersource中有若干文件夹和若干压缩文件,现在将afoldersource中的文件全部复制到afolderdist中。
afoldersource:
脚本:
@ECHO OFF
##关闭命令回显
echo copy file
##显示一句话
SET sourcepath=E:\afoldersource
##定义源地址
SET destpath=E:\afolderdist
##定义目标地址
rmdir %destpath%\folder /s /q
##删除目标地址中的文件夹
/S表示除目录本身外,还将删除指定目录下的所有子目录和文件。用于删除目录树
/q表示安静模式,带 /S 删除目录树时不要求确认
rmdir %destpath%\lib /s /q
##删除目标地址中的文件夹
rmdir %destpath%\test.war /s /q
##删除目标地址中的文件
robocopy %sourcepath% %destpath% /s /xo /ns/nc /nfl /ndl
##将源地址内容复制到目标地址中
/S 复制子目录,但不复制空的子目录
/XO排除较旧的文件
/NS无大小 - 不记录文件大小
/NFL无文件列表 - 不记录文件名。
/NDL 无目录列表 - 不记录目录名称。
结果:
场景2:afoldersource中有若干文件夹和若干压缩文件,现在将afoldersource中的文件全部复制到afolderdist中并将压缩文件解压。
需要先安装解压软件,我安装的是7-Zip 安装在C:\Program Files\7-Zip\7z.exe下
脚本:
@ECHO OFF
echo copy jy to jboss
SET sourcepath=E:\afoldersource
SET destpath=E:\afolderdist
rmdir %destpath%\folder /s /q
rmdir %destpath%\lib /s /q
rmdir %destpath%\test.war /s /q
robocopy %sourcepath% %destpath% /xf *.war/s /xo /ns /nc /nfl /ndl
##不复制压缩文件
##[/XF 文件[文件]...排除与给定名称/路径/通配符匹配的文件]
"C:\Program Files\7-Zip\7z.exe" x-o%destpath%\test.war\ -y %sourcepath%\test.war > extract.log
##解压压缩文件到目标地址
"C:\Program Files\7-Zip\7z.exe" 解压缩软件路径
x:完整路径下解压文件
-o:设置输出目录
-y:所有确认选项都默认为是(即不出现确认提示)
(扩展:-aos:跳过已存在的文件)
> extract.log 生成名为extract.log的日志文档
结果:
学习写一个能够将文件复制、解压到指定文件夹中的批处理文件