|
|
发表于 2018-10-7 19:42:00
|
显示全部楼层
回复 4# holley - @echo off
- setlocal enabledelayedexpansion
- REM 这种方法获取的日期时间可能是错误的,参考:http://bbs.bathome.net/thread-3328-1-1.html
- set datetime=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%
- for /f "delims=" %%i in ('dir /s /a-d /b "F:\pcsofts\test"') do (
- call :GetStrLen "%%~ni" length
- set "oldname=%%~ni"
- set "newname="
- set /a offset=length-1
- for /l %%j in (0,1,!offset!) do (
- if %%j lss 14 (
- set newname=!newname!!oldname:~%%j,1!!datetime:~%%j,1!
- ) else if %%j equ 14 (
- set newname=!newname!!oldname:~%%j,1!
- )
- )
- ren "%%i" "!newname!"%%~xi
- )
- endlocal
- goto :eof
- :GetStrLen
- setlocal enabledelayedexpansion
- set "$=%1"
- 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!
- endlocal&If %2. neq . (set/a%2=%len%-1)else echo %len%
复制代码 |
评分
-
查看全部评分
|