Windows批处理 - 从源路径拷贝指定文件至目标位置

Makefile @TOC

Windows批处理 - 拷贝指定格式文件【附代码详解】

在工程实践中经常需要将指定文件拷贝至目标位置,由于每次手动拷贝效率太低,因此想将这个过程自动化,并将重要信息区分颜色显示,以下是具体实现过程和代码,希望可以帮助到别人。

目录

  1. 关键信息显示
  2. 变量设定
  3. 拷贝功能具体实现
  4. 显示拷贝完毕提示信息

1. 关键信息显示

@echo off
color f0
cls
title = FileCopy
echo ***********************************************************************************
echo *     Name: FileCopy.bat                                                          *
echo *     Author: Thor @Department A                                                  *
echo *     Version: V1.0                                                               *
echo *     Target: This script is written for copy target files (test1.txt and .jpg)   *
echo *             from a source directory to a target directory.                      *
echo ***********************************************************************************

@echo off - 关闭后面语句的回显
color f0 - 设置背景颜色为白色(f),前景颜色为黑色(0);
title = FileCopy - 在运行该bat文件后,窗口最上方显示的内容
后面几句是打印关键信息

2. 变量设定

2.1 字体颜色设定

set CGreeen=ESC[32m
Set CRed=ESC[31m
set CBlue=ESC[34m
Set CEnd=ESC[30m

.bat文件里面的ESC是这样的:
编辑界面

**请注意:这里的ESC是特殊字符,不是以单纯的字母输入的,请参考连接进行正确输入:显示彩色文字编辑方法

2.2 拷贝路径设定

设定拷贝的目标路径、txt文件源路径,jpg文件源路径。
定义变量时等号前后不要留空格

set destDir=C:\Users\ddd
set txt_srcDir=C:\Users\aaa
set jpg_srcDir=C:\Users\eee

2.3 打印设定信息

echo %CRed%Note:%CEnd% The database will be copied from a 'srcDir' to 'destDir'
echo       -txt_srcDir-  : %a2l_srcDir%
echo       -jpg_srcDir-  : %elf_srcDir%
echo       -destDir- : %destDir%
  • 这里‘Note’字体会变成红色

3. 拷贝功能

3.1 拷贝指定名称文件 - test1.txt

注释要另起一行写

rem * Push the working directory to a2l_srcDir and copy the test1.txt.
pushd %a2l_srcDir% 
for %%i in (test1.txt) do (
	echo %CBlue%%%i%CEnd%
	copy %%i %destDir% /y
	)
popd

3.2 拷贝指定类型文件 - *.jpg

rem * Push the working directory to elf_srcDir and copy the .jpg files.
pushd %jpg_srcDir% 
for /r %%i in (*.jpg) do (
	echo %CBlue%%%i%CEnd%
	copy %%i %destDir% /y
	)
popd
  • 文件名称将以蓝色显示
  • /r - 遍历当前文件夹和其子文件夹

4. 显示拷贝完成信息

echo %CGreeen%[OK]%CEnd% The Database is updated successfully!
echo press any key to exit.
pause>nul

上方代码块第一句会使[OK]以绿色显示。

脚本完整展示:

@echo off
color f0
cls
title = FileCopy
echo ***********************************************************************************
echo *     Name: FileCopy.bat                                                          *
echo *     Author: Thor @Department A                                                  *
echo *     Version: V1.0                                                               *
echo *     Target: This script is written for copy target files (test1.txt and .jpg)   *
echo *             from a source directory to a target directory.                      *
echo ***********************************************************************************

rem * Set font color variable
set CGreeen=ESC[32m
Set CRed=ESC[31m
set CBlue=ESC[34m
Set CEnd=ESC[30m

rem * Set source and target directory
set destDir=C:\Users\ddd
set txt_srcDir=C:\Users\aaa
set jpg_srcDir=C:\Users\eee

rem * Print the set info
echo %CRed%Note:%CEnd% The database will be copied from a 'srcDir' to 'destDir'
echo       -txt_srcDir-  : %a2l_srcDir%
echo       -jpg_srcDir-  : %elf_srcDir%
echo       -destDir- : %destDir%

rem * Push the working directory to a2l_srcDir and copy the test1.txt.
pushd %a2l_srcDir% 
for %%i in (test1.txt) do (
	echo %CBlue%%%i%CEnd%
	copy %%i %destDir% /y
	)
popd

rem * Push the working directory to elf_srcDir and copy the .jpg files.
pushd %jpg_srcDir% 
for /r %%i in (*.jpg) do (
	echo %CBlue%%%i%CEnd%
	copy %%i %destDir% /y
	)
popd

echo %CGreeen%[OK]%CEnd% The Database is updated successfully!
echo press any key to exit.
pause>nul

运行界面:(文章中更改了脚本中部分变量名和显示名称
运行界面

Reference

感谢以下连接中提及关于批处理的介绍,没有你们的分享,就不会有这个脚本的产生。
[1]: 批处理基础语法
[2]: 显示彩色文字编辑方法
[3]: 文字色号介绍

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值