中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-14 20:58
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 随机获取文件名的一个新方法
楼 主 随机获取文件名的一个新方法 发表于 2006-12-09 13:46 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
UID 44210
状态 离线
四个月之前一起讨论过随机获取文件名的方法,发现最好的代码是:
一个关于随机获取文件名的问题
24 楼无奈何版主的代码:

@echo off
if "%1" NEQ "$" (
for /f "tokens=1,2 delims=:" %%a in ('"%~0" $^|sort') do @echo %%b
) else for /f "delims=" %%i in ('dir /b /a-d *.mp3') do @call :sub %%i
goto :EOF

:sub
echo %random%:%*
goto :EOF

及后面大家修改的代码

今晚从:
[精彩][批处理字符出现次数统计]
15 楼 redtek 的 “set .”特殊用法(排序)的灵感:

@echo off
setlocal EnableDelayedExpansion
for /f "delims=" %%i in ('dir/a-d/b *.mp3') do set $!random!!random!$%%i=$
for /f "tokens=1,2* delims=$=" %%i in ('set $') do echo %%j
pause
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
ccwan +5 2006-12-09 21:43
2 发表于 2006-12-09 22:38 ·  中国 北京 东城区 联通
金牌会员
★★★★
积分 2,902
发帖 1,147
注册 2006-09-21 12:00
UID 63324
性别 男
状态 离线
兄代码简捷精彩,欣赏~~
    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
3 发表于 2006-12-09 22:46 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
UID 44210
状态 离线
早上爬起来想到call的应用(不用延迟变量):
@echo off
for /f "delims=" %%i in ('dir/a-d/b *.mmf') do call set $%%random%%$%%i=$
for /f "tokens=1,2* delims=$=" %%i in ('set $') do echo %%j
pause
4 发表于 2006-12-09 22:50 ·  中国 北京 东城区 联通
金牌会员
★★★★
积分 2,902
发帖 1,147
注册 2006-09-21 12:00
UID 63324
性别 男
状态 离线
哈哈……这个call玩得漂亮~:)
    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
5 发表于 2006-12-10 00:45 ·  中国 广东 东莞 电信
银牌会员
★★★
积分 1,179
发帖 442
注册 2006-09-09 22:47
UID 62249
状态 离线
强,上面的代码稍微修改下就可以用来扫描硬盘的指定(类型)的文件并进行相关操作,比如前段时间中了威金病毒,可以建立一个批处理放到C盘:
@echo off
for /f "delims=" %%i in ('dir /a/b/s desktop.ini') do call set $%%random%%$%%i=$
for /f "tokens=1,2* delims=$=" %%i in ('set $') do echo %%j >>c:\删除的病毒文件.txt
pause

这样会找到所有的_desktop.ini 文件并执行删除操作。
6 发表于 2006-12-10 01:54 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
UID 59080
状态 离线
Originally posted by HUNRYBECKY at 2006-12-10 00:45:
强,上面的代码稍微修改下就可以用来扫描硬盘的指定(类型)的文件并进行相关操作,比如前段时间中了威金病毒,可以建立一个批处理放到C盘:
...


  威金病毒的主要文件是_desktop.ini,而你这样会把c盘下所有的desktop.ini都删除了,这样会影响系统的一些属性吧。
论坛跳转: