[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
  1. ren "%%i" "%%~ni%datetime%.*"
复制代码
加上双引号试试能否解决空格问题
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 4# holley
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. REM 这种方法获取的日期时间可能是错误的,参考:http://bbs.bathome.net/thread-3328-1-1.html
  4. set datetime=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%
  5. for /f "delims=" %%i in ('dir /s /a-d /b "F:\pcsofts\test\"') do (
  6.     call :GetStrLen "%%~ni" length
  7.     set "oldname=%%~ni"
  8.     set "newname="
  9.     set /a offset=length-1
  10.     for /l %%j in (0,1,!offset!) do (
  11.         if %%j lss 14 (
  12.             set newname=!newname!!oldname:~%%j,1!!datetime:~%%j,1!
  13.         ) else if %%j equ 14 (
  14.             set newname=!newname!!oldname:~%%j,1!
  15.         )
  16.     )
  17.     ren "%%i" "!newname!"%%~xi
  18. )
  19. endlocal
  20. goto :eof
  21. :GetStrLen
  22. setlocal enabledelayedexpansion
  23. set "$=%1"
  24. set len=&for %%a in (256 128 64 32 16 8 4 2 1)do if !$:~%%a^,1!. NEQ . set/a len+=%%a&set $=!$:~%%a!
  25. endlocal&If %2. neq . (set/a%2=%len%-1)else echo %len%
复制代码
1

评分人数

    • holley: 非常感谢,只有这个额度。技术 + 1
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 7# holley


插入完后文件名称filefilefilefilenameeeeee变成f2i0l1e8f1i0l0e6f2i1l3e1f4i9l即可

根据顶楼的要求,取文件名的前15位和日期时间交叉组成新文件名,出现重名是有可能的。
根据你的最新规则,遇到这种情况希望如何处理呢?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表