|
janeter
新手上路
积分 8
发帖 3
注册 2007-2-5
状态 离线
|
『楼 主』:
[已解决]求助 如何批量随机更改文件名
大家好,我现在遇到一个很棘手的要求:
当前目录下有N个txt文件,需要产生随机数,
让每一个文件都重命名为随机数命名,后缀不变.
前面搜索出来的批量命名程序都不能这样修改.尤其是文件少的时候,产生的随机数很容易重复,我不知道如何避免重复,请各位帮助.
@echo off&setlocal ENABLEDELAYEDEXPANSION
for %%a in (*.txt) do call:mytest "%%a"
:mytest
set a=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890
set /a a_=(%random%+62)%%62
set /a b_=(%random%+62)%%62
set /a c_=(%random%+62)%%62
set /a d_=(%random%+62)%%62
set /a e_=(%random%+62)%%62
set /a f_=(%random%+62)%%62
echo rename %1 !a:~%a_%,1!!a:~%b_%,1!!a:~%c_%,1!!a:~%d_%,1!!a:~%e_%,1!!a:~%f_%,1!.txt
rename %1 !a:~%a_%,1!!a:~%b_%,1!!a:~%c_%,1!!a:~%d_%,1!!a:~%e_%,1!!a:~%f_%,1!.txt [ Last edited by janeter on 2007-2-4 at 11:04 PM ]
|
|
2007-2-5 00:23 |
|
|
ccwan
金牌会员
积分 2725
发帖 1160
注册 2006-9-23 来自 河北廊坊
状态 离线
|
『第
2 楼』:
楼主搜索一下的话,可以看到论坛有很多这种帖子的。
btw,问一下楼主,既然怕重复,为什么不让文件以序号形式排列呢?那样多么整齐啊。例如1.txt、2.txt……
|
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。 |
|
2007-2-5 00:51 |
|
|
janeter
新手上路
积分 8
发帖 3
注册 2007-2-5
状态 离线
|
『第
3 楼』:
呵呵,搜索不到.需求就是定期把目录下面的文件随机更名,所以我才想到搞一个脚本定期执行讷.
|
|
2007-2-5 01:00 |
|
|
jmz573515
银牌会员
积分 1212
发帖 464
注册 2006-12-13
状态 离线
|
『第
4 楼』:
你这个应该改成怎么样生成不重复的随机数啊,哈哈
|
|
2007-2-5 01:05 |
|
|
ccwan
金牌会员
积分 2725
发帖 1160
注册 2006-9-23 来自 河北廊坊
状态 离线
|
『第
5 楼』:
就算灌水吧
[ Last edited by ccwan on 2007-2-5 at 03:54 AM ]
|
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。 |
|
2007-2-5 01:51 |
|
|
janeter
新手上路
积分 8
发帖 3
注册 2007-2-5
状态 离线
|
『第
6 楼』:
@echo off
for %%a in (*.txt) do call:mytest "%%a"
:mytest
rename %1 %random%.txt 苦学了一个下午,我终于写了一段可以执行的代码,哈哈......
执行完毕可以随机改名,不过结果总是有一个:
The syntax of the command is incorrect.
不知道咋整了.谢谢各位帮助过我的人,祝你们新年快乐!
|
|
2007-2-5 09:58 |
|
|
namejm
荣誉版主
batch fan
积分 5226
发帖 1737
注册 2006-3-10 来自 成都
状态 离线
|
『第
7 楼』:
以下代码能把当前目录下的txt文件更名为1~32767之间的文件名,对已经更名过的文件不再处理,可以试一下:
@echo off
for /f "delims=" %%i in ('dir /a-d /b *.txt^|findstr /v "^[0-9]*\.txt$"') do call :ren_ "%%i"
pause
exit
:ren_
ren %1 %random%.txt 2>nul||goto ren_
goto :eof
|
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。 |
|
2007-2-5 11:18 |
|
|
anqing
高级用户
积分 859
发帖 413
注册 2006-8-14
状态 离线
|
『第
8 楼』:
findstr /v "^[0-9]*\.txt$"')新用法,格式,学习了
|
|
2007-2-5 11:39 |
|
|
bsw
新手上路
积分 16
发帖 8
注册 2007-4-27
状态 离线
|
|
2007-5-10 15:32 |
|
|
zhoushijay
高级用户
Autowalk
积分 845
发帖 375
注册 2007-3-3
状态 离线
|
|
2007-5-10 15:57 |
|