![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-25 10:09 |
共 47,813 主题排行 / 349,918 发帖 / 今日 0 篇 / 48,274 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 批处理 中 “!”,“:”什么意思啊? |
| 可打印版本 1,205 / 8 |
| 第1楼 tolyxiong | 发表于 2007-05-22 21:40 |
| 新手上路 发帖 4 积分 10 来自 湖南 | |
|
批处理 中 “!”,“:”什么意思啊? @echo off
set f=c:\aaa.txt set f2="c:\aaa.bak.txt" for /?>%f% if exist %f2% del %f2% for /f "tokens=* delims=%" %%l in (%f%) do ( set line=%%l set line=!line:FOR=F_O_R! echo !line!>>%f2% ) ---------------------- @echo off setlocal enabledelayedexpansion for /f "delims=" %%i in (test.txt) do ( set "str=%%i" set "str=!str: =!" set "str=!str:~12!" echo !str! ) pause 最后3行都什么意思啊? 特别是 那个 “!”,“:” ,他们如何使用的,一点都不懂,高人请帮忙解释下,多谢了 另外: 我还有个问题,我的电脑中毒了,.exe文件被感染,html,asp文件也都被感染了。 htm, asp 文件都是以前积累的一些资料,舍不得删掉。 病毒文件就是在每个 htm,asp文件的末尾加入了这样一行:“<iframe src=http://www.puma166.com/1.htm width=0 height=0></iframe>” , 要一个个删除不是个事,于是就想用批处理能不能解决,高手能否帮帮忙? [ Last edited by tolyxiong on 2007-5-22 at 09:44 PM ] |
|
| 第2楼 bjsh | 发表于 2007-05-22 22:55 |
| 银牌会员 发帖 621 积分 2,000 | |
|
搜索变量延迟;
至于删除最后一行; 可以通过 for语句历遍被感染的html和asp; 对每一个html和asp文件执行: findstr /v "<iframe src=http://www.puma166.com/1.htm width=0 height=0></iframe>" 文件名 > 文件名.bak delete 原文件 然后把bak文件改名为原来的文件即可 |
|
| 第3楼 tolyxiong | 发表于 2007-05-23 01:13 |
| 新手上路 发帖 4 积分 10 来自 湖南 | |
|
多谢斑竹! 按照你的思路我搞了个.bat文件,功能基本上可以实现,就是需要把它放在需要修改的.htm.asp 文件的根目录下才行。我是这样写的,希望多给建议~~
---------------------------------del.bat @echo off setlocal rem DPATH : 指定目录 rem FILETYPE: 指定文件类型 rem SCONTENT: 替换前的字符串 rem TMPFILE : 临时文件 rem set DPATH=c:\temp set FILETYPE=*.htm set SCONTENT="<iframe src=http://www.puma166.com/1.htm width=0 height=0></iframe>" set TMPFILE=%random%.bak rem DO 后面要紧跟 “(” for /r %%i in (%FILETYPE%) do ( echo %%i if exist %TMPFILE% ( del /f/q %TMPFILE% ) set TMPFILE=%random%.bak findstr /v %SCONTENT% %%i > %TMPFILE% move /y %TMPFILE% %%i ) endlocal |
|
| 第4楼 tolyxiong | 发表于 2007-05-23 01:17 |
| 新手上路 发帖 4 积分 10 来自 湖南 | |
|
set line=%%l
set line=!line:FOR=F_O_R! echo !line!>>%f2% --------------------------- 关于 “!”,“:” ,“~”的作用和用法我还是搞不清,能给解释下吗,如果觉得麻烦,给介绍点资料也行~~~~我菜,但是很喜欢这些东西。。。。。 |
|
| 第5楼 bjsh | 发表于 2007-05-23 11:29 |
| 银牌会员 发帖 621 积分 2,000 | |
|
你试试这个吧;
放于c盘;双击运行 会搜索整个c盘被感染的html和asp文件并修复; 放于其他盘同; 放于某个目录下;会搜索整个目录及其子目录中被感染的html和sap文件并修复 当然可以改造为搜索所有硬盘;不过用在这觉得是浪费效率; |
|
| 第6楼 bjsh | 发表于 2007-05-23 11:36 |
| 银牌会员 发帖 621 积分 2,000 | |
|
对于
你说说的 “!”“:” “~”的作用 参考 以下 set /? 搜索 [CMD]理解变量字符的截取功能 搜索 变量延迟 |
|
| 第7楼 tolyxiong | 发表于 2007-05-23 12:32 |
| 新手上路 发帖 4 积分 10 来自 湖南 | |
|
多谢了。
我发现我们2个的程序都不能处理文件名里面带空格的文件, findstr 会把有空格的文件按照空格拆分成几个文件,结果当然是“找不到相应的文件”了,昨天晚上搞了好久未果。。。。 。,我对好多基本的用法都不熟悉,别说灵活运用了。。。。 |
|
| 第8楼 bjsh | 发表于 2007-05-25 19:26 |
| 银牌会员 发帖 621 积分 2,000 | |
这个好办啊; 加引号不就解决了么; |
|
| 第9楼 wangmeng052 | 发表于 2007-06-11 23:23 |
| 中级用户 发帖 154 积分 334 | |
|
太复杂了。。。。。。。。。。。
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |