标题: 如何在批处理中模拟像瑞星扫描时列举路径的显示效果?
[打印本页]
作者: 002500
时间: 2006-10-14 22:36
标题: 如何在批处理中模拟像瑞星扫描时列举路径的显示效果?
使用以下代码显示所有文件 显示的文件是一行行的
for /r %%c in (*.*) do echo %%c
我想做到这种效果:
@mode con:cols=80 lines=8
@title 枚举并适时显示
@color 71
@echo 正在枚举中..........
@for /r %%d in (*.*) do @(
@echo %%d >>result.txt && @title %%d
)
@title 枚举并适时显示
@start result.txt
@echo.
@echo OK,完成 正在退出..........
@dir %windir% /a /s>nul
exit
但不是让列举文件显示在标题上 如何让其显示在窗口中呢
(cmd@xp_sp2)
作者: my3439955
时间: 2006-10-14 22:46
加入cls就行了啊
@mode con:cols=80 lines=8
@title 枚举并适时显示
@color 71
@echo 正在枚举中..........
@for /r %%d in (*.*) do @(
@echo %%d >>result.txt && @(cls && echo%%d)
)
@title 枚举并适时显示
@start result.txt
@echo.
@echo OK,完成 正在退出..........
@dir %windir% /a /s>nul
exit
作者: my3439955
时间: 2006-10-14 23:00
@echo off
mode con:cols=80 lines=8
title 枚举显示
set tgt=%windir%
for /F "tokens=*" %%i in ('dir %tgt% /A- /B /S') do @(cls && echo %%i && for /L %%k in (1,1,100) do @ver>nul)
刚才那个会无视隐藏文件
这个会看得到的
作者: my3439955
时间: 2006-10-14 23:13
不过要先等上一会才出结果
作者: 002500
时间: 2006-10-14 23:21
呵呵 我真笨 怎么没想到用cls呢
谢谢 my3439955
作者: lxmxn
时间: 2006-10-15 14:05
我也发一个模拟瑞星扫描的窗口出来: :)
@echo off
mode con cols=100 lines=6
color 34
for /f "tokens=*" %%i in ('dir c:\*.* /b/s/a-d') do (
@title 扫描%%~si>nul && @echo. && @echo 瑞星杀毒系统正在对下列文件进行全面的扫描: && @echo. && @echo %%~fi && ping 127.0.0.1 -n 1 -w 1000>nul 2>nul && cls
)
pause
声明:以上代码仅供学习研究使用,出现任何损失,本人概不负责。
[
Last edited by lxmxn on 2006-10-16 at 04:32 ]
作者: 1980623
时间: 2006-10-15 22:07
大哥能讲一下吗??没太看明白??????????
作者: redtek
时间: 2006-10-16 01:34
Quote: |
Originally posted by lxmxn at 2006-10-15 14:05:
我也发一个模拟瑞星扫描的窗口出来: :)
[code]
@echo off
mode con cols=100 lines=6
color 34
for /f "tokens=*" %%i in ('dir c:\*.* /b/ ... |
|
恭喜 lxmxn,你可发明新东西啦~:)))
我在 Windows Server 2003 上运行这个批处理,
结果好玩的事情发生了:
刚运行了1秒钟后,系统键盘失灵然后突然蓝屏(Server版少见啊),
而且蓝屏以后连我按重启都不行,它自己就重启了,哈哈哈……
这可以做为攻击性的一种代码~:) 顶一个!
(还更奇怪,重启以后我回来找那个我存的 a.bat 这个文件,居然没了!!!)
(为什么文件为没?存过盘的,执行了以后虽蓝屏重启,但这个被执行的文件没了?哈哈)
(顶!!!!如果这现象可以重复多次发生,那么足可以做为攻击别人的文件自杀方法,哈哈)
我觉得很奇怪,于是开启虚拟机(VMWare PC),环境也是WIN2003版。
结果又试了一遍,蓝屏D机:)哈哈哈……
虚拟机D机蓝屏的窗口我截图了,大家研究吧:)
lxmxn留好这个伟大的发明:)))
对了,我那个虚拟机上的所有上面DIR列出来的文件约为7万多个。
会不会因为 for获得的文件数量太多而溢出?
附件
1:
1.JPG (2006-10-16 01:34, 12.68 K, 下载附件所需积分 1点
,下载次数: 3)
作者: redtek
时间: 2006-10-16 01:56
第6次实验……
环境:虚拟机 WIN2003服务器版,内存800MB
@echo off
mode con cols=100 lines=6
pause
color 34
pause
for /f "tokens=*" %%i in ('dir e:\*.* /b/s/a-d') do (
@title 扫描%%~si>nul && @echo. && @echo 瑞星杀毒系统正在对下列文件进行全面的扫描: &&
@echo. && @echo %%~fi && ping 127.0.0.1 -n 2 -w 1000>nul 2>nul && cls
)
pause
这回我换成了E盘,我E盘几乎是空的,才有1500多个文件,1千多个文件不算多。
程序运行过程中非常好,约2秒显示一个文件名。
但是,我实在等不了,约等了它显示了10个文件名以后(才10个!!!),
然后CTRL+C终止程序。
可以被终止,然后我想再重新试验一次,于是 EXIT 命令退出这个DOS窗口,
又奇怪的事情发生了,能正常退出。表面上看没什么问题,但是……
我想再次实验一次,又重新运行CMD,这回没反应了,3秒后蓝屏出现!!!
哈哈……
(有兴趣的可以试试,顶多蓝屏重启~:)
[
Last edited by redtek on 2006-10-16 at 02:01 ]
作者: electronixtar
时间: 2006-10-16 02:21
楼上的实验不可再现。我试了n次都没发现有这个问题
而且不是没两秒显示一个,是一秒显示3个
[
Last edited by electronixtar on 2006-10-16 at 02:22 ]
作者: redtek
时间: 2006-10-16 02:52
你 copy con a.bat 的方式还存盘,试一下,硬盘文件不少于几千。
(拷贝6楼代码)
一定要copy con 方式存。
另,我又试了几遍,用notepad.exe存或是copy con 方式建立文件,然后直接DOS窗口内粘,粘以后再用notepad.exe 打开,打开后打个空格再存一下,
就没有问题。
如果直接DOS窗口copy con 方式建文件,然后直接粘,CTRL+Z存盘,
又试了一次,然后等了1分钟,然后终止窗口。
终止以后再进CMD就进不去了,点桌面上的批处理快捷方式也进不去了,
CMD不再执行,这回没蓝屏。
作者: zouzhxi
时间: 2006-10-16 03:15
Quote: |
Originally posted by redtek at 2006-10-16 01:56:
第6次实验……
环境:虚拟机 WIN2003服务器版,内存800MB
[code]
@echo off
mode con cols=100 lines=6
pause
color 34
pause
for /f &qu ... |
|
我也试了.本人计算机系统XP+SP2
显示了快10000个文件时,没耐心等了.就直接按CTRL+C停了.(可是一停就重启)
于是我又试了第二次,这次我就直接关了..也是一样,(重启)!!!
作者: electronixtar
时间: 2006-10-16 03:43
难道说,这就是,传说中的,dir 溢出?
哈哈哈哈哈哈哈……………………………………………………
作者: electronixtar
时间: 2006-10-16 04:01
redtek
你直接在cmd里试试这个看会死机不?
dir /a-d /b /s C:\*.*
作者: redtek
时间: 2006-10-16 04:04
会不会是那个被多次定向到NUL造成的?
作者: redtek
时间: 2006-10-16 04:05
electronixtar你是不是没有真正的试过那段代码呀?哈哈……
作者: kcdsw
时间: 2006-10-16 04:13
win + r cmd
cd\
copy con text.bat
然后复制粘贴
然后ctrl + z
c:\test.bat
然后等出文件的时候ctrl + c
然后exit
然后鼠标双击的时候....提示错误
然后....蓝了
作者: electronixtar
时间: 2006-10-16 04:19
………………
我的终于也蓝了,晕
3389上的一台2003的服务器
复制代码,打开cmd
到C:>下
copy con test.bat
粘贴
输入 test.bat,回车
然后3389就断了
[
Last edited by electronixtar on 2006-10-16 at 04:49 ]
作者: lxmxn
时间: 2006-10-16 04:56
标题: 再对6楼的代码加一个扫描文件数
在6楼的基础上,再加上一个“已扫描的文件数”,是它看起来更像是在扫描,代码如下:
@echo off
mode con cols=100 lines=10
setlocal enabledelayedexpansion
color 04
set a=
for /f "tokens=*" %%i in ('dir c:\*.* /b/s/a-d') do (
@title 扫描%%~si>nul && @echo. && @echo 瑞星杀毒系统正在对下列文件进行全面的扫描: &&
@echo. && @echo 已经扫描文件数: !a! && set /a a+=1 && @echo. && @echo %%~fi && ping
127.0.0.1 -n 1 -w 1000>nul 2>nul && cls
)
pause
声明:本代码仅供学习研究之用,出现任何问题,本人概不负责!
----by:lxmxn
作者: electronixtar
时间: 2006-10-16 04:56
个人认为该现象可以用以下实验解释:
随便找一个含exe的目录,例如 C:\windows\system32\cmd.exe
D:
type C:\windows\system32\cmd.exe>D:\cmd.txt
cmd.txt
看看是不是cmd.txt被运行了?
作者: electronixtar
时间: 2006-10-16 05:14
@echo off
mode con cols=40 lines=8
setlocal enabledelayedexpansion
color 17
set a=
echo q|debug
echo.
echo Preparing Anti-virus Engine...
echo.
echo.
for /f "tokens=*" %%i in ('dir C:\Windows\System32\*.* /b/s/a-d') do (
@title %%~nxi>nul
@echo.
@echo Scanning your system:
@echo.
@echo !a! files scaned.
set /a a+=1
@echo.
@echo %%~fi
ping 127.0.0.1 -n 1 -w 1000>nul 2>nul
cls
)
cls
echo.
echo Scanning finished.
echo.
echo %a% files scanned, no virus found.
pause>nul
作者: vkill
时间: 2006-10-16 05:19
还是做个进度条好点,呵呵
作者: you188
时间: 2006-12-16 10:05
看不明白是什么
作者: weapfe
时间: 2006-12-16 11:16
标题: 没有问题呀?~~
如题,
我也试了 是6F的没有什么蓝屏,关机,重起什么的,
我的是XP+SP2
作者: netbenton
时间: 2009-4-10 08:01
会不会是和windows的临时文件处理或虚拟内存管理冲突呢?
如:注册表文件等,是系统独占,访问时会不会出错呢?
如果把原来的对C:扫描,改成对D:或其它盘扫描,不会出现错误的话,就应该是上述原因了。
还一点就是一个cmd进程使用内存的最大限好像是64M,可能也有原因。
至于管道能处理多大的数据,应该也有个限的,或许也会溢出。
[
Last edited by netbenton on 2009-4-10 at 06:03 ]
作者: zh159
时间: 2009-4-10 09:25
我是半天不见扫描-_-
建议:如果不是为了判断,连接尽量使用单“&”,且“&”后一般不要留空格;双“&”的意思是前面执行成功后执行后面的,而这里可以只用单“&”来在一行里执行所有命令(不知道是不是这双“&”的的问题)
作者: wuwei1dai
时间: 2009-5-2 05:46
@for /r %%d in (*.*) do @(
@echo %%d >>result.txt && @title %%d
)
这好像不能看到隐藏文件吧