工程目录示例
copy.bat
::关闭命令行显示
@echo off
:: GBK
chcp 936 >nul
setlocal EnableDelayedExpansion
:设置文件夹路径
set "FolderName=.\Objects"
:: set "FolderName=.\Objects"
:: #;copy %FolderName%\*.hex ..\*.hex //复制到根目录
:: copy %FolderName%\*.hex .\*.hex //复制到文件的上一个目录中
:==========================================
:: copy %FolderName%\*.hex ..\*.hex >nul
:: del %FolderName%\*.hex /s >nul
:==========================================
:: 先复制原文件 到根目录
copy %FolderName%\*.hex .\*.hex >nul
:: 删除原文件
del %FolderName%\*.hex /s >nul
:: 重命名到上一个目录
:==========================================
::(1) 获取当前日期
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "year=%dt:~0,4%"
set "month=%dt:~4,2%"
set "day=%dt:~6,2%"
:: (2)格式化日期
set "datestr=%year%%month%%day%"
:: (3)遍历当前目录下的所有.hex文件
for %%f in (*.hex) do (
set "filename=%%~nf"
set "extension=%%~xf"
:: 正确显示新文件名 (日期_原文件名.原格式)
ren "%%f" "!datestr!_!filename!!extension!"
:: 移动文件到父目录
move "!datestr!_!filename!!extension!" "..\!datestr!_!filename!!extension!" >nul
)
:==========================================
:==========================================
echo =======Start *.o *.d *.crf Del======= >nul
del *.d /s /q > nul
:: 删除编译 .o 的中间文件
del *.o /s /q > nul
:: 删除编译 .crf 的中间文件 (MDK 跳转需要这个文件)
:: del *.crf /s /q >nul
echo =======End Del======= >nul
endlocal
exit
:==========================================
:: del /S %FolderName%\*.hex >nul 2>&1
:: >nul 2>&1:将标准输出(stdout)重定向到 nul(即丢弃),同时将错误输出(stderr)也重定向到与 stdout 相同的地方(也就是 nul),这样就不会显示任何输出信息
:: 删除编译 .d 的中间文件(不显示文件信息)/s 包含所有子目录 /q (静默模式,不显示删除的文件信息)
效果
原文件文件:美容机扫码板.hex
修改后文件:20240831_美容机扫码板.hex