本帖最后由 holley 于 2018-10-8 15:05 编辑
最初打算将某个文件夹内的所有文件在原文件名的基础上截取字段并随机命名
1、首先试了试随机命名的代码- @echo off
- setlocal enabledelayedexpansion
- for /f "delims=" %%a in ('dir/s/b/a-d F:\pcsofts\test\') do ren "%%a" !random!!random!.*
- pause
复制代码 2、后面在做文件名截取的时候突然发现,文件名长度多数不一致,而且共同特征不明显,遂放弃。
3、再想到不如索性以当前日期、时间依次按1个字符的步长穿插到原文件名中
4、先尝试直接加在原文件名后面- @echo off
- set datetime=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%
- echo %datetime%
- for /f %%i in ('dir /s/a-d /b F:\pcsofts\test\') do ren %%i %%~ni%datetime%.*
- pause
复制代码 目前有个问题是:如果文件名中有空格 是加不上的,不知道咋个处理...
【已解决】- @echo off
- set datetime=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%
- echo %datetime%
- for /f "delims=" %%i in ('dir /s/a-d /b F:\pcsofts\test\') do ren "%%i" "%%~ni%datetime%.*"
- pause
复制代码 5、开始尝试按文件名长度,依次插入
比如文件名是filename,插入完成后应该变为:f2i0l1e8n1a0m0e6
如果文件名不够,就不再插入,比如file只需要变成f2i0l1e8
如果文件名足够长,就把文件名截取到日期时间完全插入完毕为止,比如现在是21点31分49秒,插入完后文件名称filefilefilefilenameeeeee变成f2i0l1e8f1i0l0e6f2i1l3e1f4i9l即可。
到这步就再次卡住了,,,不知道以什么方式插入原文件名 step还是for?
我是不是有点作... |