[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 【已解决】求一份批量重命名批处理脚本

本帖最后由 hztccy 于 2025-3-29 15:24 编辑

我使用Robocopy拷贝文件进行备份使用如下命令
  1. 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
  2. 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
  3. 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%" "%书签_路径%\!创建_文件名!"
    )
)

知道文件位置,for获取修改时间,再重命名
bat小白,请多指教!谢谢!

TOP

回复 2# 77七


    有for示例吗?通过for获取文件时间的代码我没写过哦

TOP

回复 1# hztccy

给一个直接用 copy 干掉的批处版本...
  1. @echo off &setlocal enabledelayedexpansion
  2. for %%x in (
  3.   "C:\Users\Public\LiuLanQiHuanCun\SgGsLlq\favorite3.dat/C:\Users\Public\LiuLanQiHuanCun"
  4.   "D:\Program Files\favorite3.dat/C:\Users\Public\LiuLanQiHuanCun\SgGsLlq"
  5.   "D:\1\favorite3.dat/C:\Users\Public\LiuLanQiHuanCun\SgGsLlq"
  6. ) do for /f "tokens=1-2 delims=/" %%a in (%%x) do set "t=%%~ta" &copy /y "%%a" "%%b\%%~nxa_!t:~,10!"
  7. pause&exit/b
复制代码

TOP

回复 3# hztccy


  
  1. 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
  2. for %%i in ("C:\Users\Public\LiuLanQiHuanCun\SgGsLlq\favorite3.dat") do (
  3. for /f "tokens=1-3 delims=/ " %%a in ("%%~ti") do (
  4. ren "C:\Users\Public\LiuLanQiHuanCun\favorite3.dat" "%%~nxi_%%a_%%b_%%c"
  5. )
  6. )
复制代码
以前听大佬说过,单文件复制用robocopy不能加速,文件很大吗?需要观察进度?
bat小白,请多指教!谢谢!

TOP

回复 5# 77七


    我用robocopy知识为了日志功能,可以在不确定的情况下,通过日志查看

TOP

返回列表