标题: 随机获取文件名的一个新方法
[打印本页]
作者: zh159
时间: 2006-12-9 13:46
标题: 随机获取文件名的一个新方法
四个月之前一起讨论过随机获取文件名的方法,发现最好的代码是:
一个关于随机获取文件名的问题
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
作者: redtek
时间: 2006-12-9 22:38
兄代码简捷精彩,欣赏~~
作者: zh159
时间: 2006-12-9 22:46
早上爬起来想到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
作者: redtek
时间: 2006-12-9 22:50
哈哈……这个call玩得漂亮~:)
作者: HUNRYBECKY
时间: 2006-12-10 00:45
强,上面的代码稍微修改下就可以用来扫描硬盘的指定(类型)的文件并进行相关操作,比如前段时间中了威金病毒,可以建立一个批处理放到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 文件并执行删除操作。
作者: lxmxn
时间: 2006-12-10 01:54
Quote: |
Originally posted by HUNRYBECKY at 2006-12-10 00:45:
强,上面的代码稍微修改下就可以用来扫描硬盘的指定(类型)的文件并进行相关操作,比如前段时间中了威金病毒,可以建立一个批处理放到C盘:
... |
|
威金病毒的主要文件是_desktop.ini,而你这样会把c盘下所有的desktop.ini都删除了,这样会影响系统的一些属性吧。