中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-19 01:19
47,814 主题排行 / 349,908 发帖 / 今日 1 篇 / 48,259 会员排行
DOS疑难解答 & 问题讨论 (解答室) » 关于随机变量%random% 求助
可打印版本  1,042 / 10
第1楼 araise 发表于 2007-09-07 14:03
初级用户 发帖 22 积分 55
关于随机变量%random% 求助
我想实现把本文件夹内所有的文本文件改名,名字为随机数,用了%random%变量,程序如下:

@echo off
for %%a in (*.txt) do (ren %%a %random%.txt)

为何达不到预期效果,文本长名字的情况可用%~fsa解决,暂不考虑
在此for循环中,%random%不可更新,运行结果提示“与现有文件重名”
请问如何解决,实现对所有文件的随机更名操作

关键问题在与如何能在运行一次批处理的情况下生成若干个不同的随机数

[ Last edited by araise on 2007-9-7 at 02:41 PM ]
第2楼 Climbing 发表于 2007-09-07 15:49
铂金会员 发帖 2,753 积分 6,962 来自 河北保定
试试这样:



我自己没有测试,不知道好用不。

[ Last edited by Climbing on 2007-9-7 at 03:52 PM ]
第3楼 Climbing 发表于 2007-09-07 15:53
铂金会员 发帖 2,753 积分 6,962 来自 河北保定
试过了,基本上满足要求。
第4楼 Climbing 发表于 2007-09-07 15:55
铂金会员 发帖 2,753 积分 6,962 来自 河北保定
或者这样也可以:
第5楼 icyheart 发表于 2007-09-07 17:19
中级用户 发帖 81 积分 216
不对根本换不了只是写出来了不换
第6楼 araise 发表于 2007-09-07 20:04
初级用户 发帖 22 积分 55
Climbing你好,
你的第二段代码的思路我明白了,正是我所需要的,谢谢
只是第一段代码中有不解之处:
为何要在主程序段和标签中用到goto :eof
这个goto :eof我不很明白,之前也查过相关资料但仍不甚解
希望对此加以解释,谢谢
第7楼 Climbing 发表于 2007-09-10 09:19
铂金会员 发帖 2,753 积分 6,962 来自 河北保定
:eof是一个默认标签,表示文件结尾(end of file),意思就是跳出程序。

其它的就好理解了吧?
第8楼 araise 发表于 2007-09-10 18:50
初级用户 发帖 22 积分 55
谢谢拉~~~
第9楼 kmtis003 发表于 2007-09-15 16:02
初级用户 发帖 21 积分 48
Originally posted by Climbing at 2007-9-7 03:55 PM:
或者这样也可以:


请讲解一下
@echo off & setlocal ENABLEDELAYEDEXPANSION
for %%a in (*.*) do echo ren "%%a" !random!.txt

中的setlocal这句和后面的ren "%%a" !random!.txt
是怎么来的.谢谢.看不懂~
第10楼 putao 发表于 2007-10-21 13:34
初级用户 发帖 41 积分 80
学习,谢谢
第11楼 不得不爱 发表于 2007-10-22 17:47
超级版主 发帖 2,044 积分 5,310 来自 四川南充
Originally posted by kmtis003 at 2007-9-15 16:02:


请讲解一下
@echo off & setlocal ENABLEDELAYEDEXPANSION
for %%a in (*.*) do echo ren "%%a" !random!.txt

中的setlocal这句和后面的ren "%%a" !random!.txt
...

用FOR/?看下帮助
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023