
标题: [文本处理] 【已解决】求一份批量重命名批处理脚本 [打印本页]
作者: hztccy 时间: 6 天前 11:40 标题: 【已解决】求一份批量重命名批处理脚本
本帖最后由 hztccy 于 2025-3-29 15:24 编辑
我使用Robocopy拷贝文件进行备份使用如下命令- Robocopy "C:\Users\Public\LiuLanQiHuanCun\SgGsLlq" "C:\Users\Public\LiuLanQiHuanCun" "favorite3.dat" /Z /IS /R:2 /W:10 /ETA /V /MT:16 /TEE /LOG+:C:\vrvtemp\RoboCoopy.log
- RoboCopy "D:\Program Files" "C:\Users\Public\LiuLanQiHuanCun\SgGsLlq" "favorite3.dat" /Z /IS /R:2 /W:10 /ETA /V /MT:16 /TEE /LOG+:C:\vrvtemp\RoboCoopy.log
- RoboCopy "D:\1" "C:\Users\Public\LiuLanQiHuanCun\SgGsLlq" "favorite3.dat" /Z /IS /R:2 /W:10 /ETA /V /MT:16 /TEE /LOG+:C:\vrvtemp\RoboCoopy.log
复制代码
然后我想在每次robocopy拷贝文件后就在文件末尾加入该文件拷贝前最后的修改时间
如avorite3.dat该文件最后的修改时间是2023_05_25我就希望在robocopy拷贝过来后在avorite3.dat莫问添加2023_05_25的日期,例如这样的
avorite3.dat_2023_05_25
试了好久始终不得思路,求一份现成脚本。
解决方法:
查阅了无数资料找到一个可用的脚本
Set "源文件_File=指定文件的位置"
IF Exist "%源文件_File%" (
for %%F in ("%源文件_File%") do (
Set "文件_时间=%%~tF"
Set "年=!文件_时间:~0,4!"
Set "月=!文件_时间:~5,2!"
Set "日=!文件_时间:~8,2!"
Set "时=!文件_时间:~11,2!"
Set "分=!文件_时间:~14,2!"
Set "秒=!文件_时间:~17,2!"
Set "计数器_计数=1"
Set "创建_文件名=favorite3.dat_!年!_!月!_!日!_!时!!分!!秒!"
:检查_名称1
IF Exist "%书签_路径%\!创建_文件名!" (
Set /a 计数器_计数+=1
Set "创建_文件名=favorite3.dat_!年!_!月!_!日!_!计数器_计数!"
goto 检查_名称1
)
copy "%源文件_File%" "%书签_路径%\!创建_文件名!"
)
)
作者: 77七 时间: 6 天前 14:02
知道文件位置,for获取修改时间,再重命名
作者: hztccy 时间: 6 天前 15:17
回复 2# 77七
有for示例吗?通过for获取文件时间的代码我没写过哦
作者: aloha20200628 时间: 6 天前 16:36
回复 1# hztccy
给一个直接用 copy 干掉的批处版本...- @echo off &setlocal enabledelayedexpansion
- for %%x in (
- "C:\Users\Public\LiuLanQiHuanCun\SgGsLlq\favorite3.dat/C:\Users\Public\LiuLanQiHuanCun"
- "D:\Program Files\favorite3.dat/C:\Users\Public\LiuLanQiHuanCun\SgGsLlq"
- "D:\1\favorite3.dat/C:\Users\Public\LiuLanQiHuanCun\SgGsLlq"
- ) do for /f "tokens=1-2 delims=/" %%a in (%%x) do set "t=%%~ta" © /y "%%a" "%%b\%%~nxa_!t:~,10!"
- pause&exit/b
复制代码
作者: 77七 时间: 6 天前 16:47
回复 3# hztccy
- Robocopy "C:\Users\Public\LiuLanQiHuanCun\SgGsLlq" "C:\Users\Public\LiuLanQiHuanCun" "favorite3.dat" /Z /IS /R:2 /W:10 /ETA /V /MT:16 /TEE /LOG+:C:\vrvtemp\RoboCoopy.log
- for %%i in ("C:\Users\Public\LiuLanQiHuanCun\SgGsLlq\favorite3.dat") do (
- for /f "tokens=1-3 delims=/ " %%a in ("%%~ti") do (
- ren "C:\Users\Public\LiuLanQiHuanCun\favorite3.dat" "%%~nxi_%%a_%%b_%%c"
- )
- )
复制代码
以前听大佬说过,单文件复制用robocopy不能加速,文件很大吗?需要观察进度?
作者: hztccy 时间: 6 天前 20:19
回复 5# 77七
我用robocopy知识为了日志功能,可以在不确定的情况下,通过日志查看
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |