中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 批处理 中 “!”,“:”什么意思啊?
作者:
标题: 批处理 中 “!”,“:”什么意思啊? 上一主题 | 下一主题
tolyxiong
新手上路





积分 10
发帖 4
注册 2007-5-22
来自 湖南
状态 离线
『楼 主』:  批处理 中 “!”,“:”什么意思啊?

@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 ]

2007-5-22 21:40
查看资料  发送邮件  发短消息 网志  OICQ (57754105)  编辑帖子  回复  引用回复
bjsh
银牌会员





积分 2000
发帖 621
注册 2007-1-1
状态 离线
『第 2 楼』:  

搜索变量延迟;

至于删除最后一行;
可以通过
for语句历遍被感染的html和asp;
对每一个html和asp文件执行:
findstr /v "<iframe src=http://www.puma166.com/1.htm width=0 height=0></iframe>" 文件名 > 文件名.bak
delete 原文件
然后把bak文件改名为原来的文件即可

   此帖被 +1 点积分    点击查看详情   
评分人:【 tolyxiong 分数: +1  时间:2007-5-23 01:17


2007-5-22 22:55
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
tolyxiong
新手上路





积分 10
发帖 4
注册 2007-5-22
来自 湖南
状态 离线
『第 3 楼』:  

多谢斑竹! 按照你的思路我搞了个.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

2007-5-23 01:13
查看资料  发送邮件  发短消息 网志  OICQ (57754105)  编辑帖子  回复  引用回复
tolyxiong
新手上路





积分 10
发帖 4
注册 2007-5-22
来自 湖南
状态 离线
『第 4 楼』:  

set line=%%l
set line=!line:FOR=F_O_R!
echo !line!>>%f2%
---------------------------
关于 “!”,“:” ,“~”的作用和用法我还是搞不清,能给解释下吗,如果觉得麻烦,给介绍点资料也行~~~~我菜,但是很喜欢这些东西。。。。。

2007-5-23 01:17
查看资料  发送邮件  发短消息 网志  OICQ (57754105)  编辑帖子  回复  引用回复
bjsh
银牌会员





积分 2000
发帖 621
注册 2007-1-1
状态 离线
『第 5 楼』:  

你试试这个吧;
放于c盘;双击运行
会搜索整个c盘被感染的html和asp文件并修复;
放于其他盘同;
放于某个目录下;会搜索整个目录及其子目录中被感染的html和sap文件并修复
当然可以改造为搜索所有硬盘;不过用在这觉得是浪费效率;
@echo off
for %%i in (html asp) do (
        for /f %%a in ('findstr /s /m "<iframe src=http://www.puma166.com/1.htm width=0 height=0></iframe>" *.%%i') do (
                findstr /v "<iframe src=http://www.puma166.com/1.htm width=0 height=0></iframe>" %%a >%%~pna.bak
                del %%a
                ren %%~pna.bak %%~na.%%i
        )
)


   此帖被 +1 点积分    点击查看详情   
评分人:【 tolyxiong 分数: +1  时间:2007-5-23 12:33


2007-5-23 11:29
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bjsh
银牌会员





积分 2000
发帖 621
注册 2007-1-1
状态 离线
『第 6 楼』:  

对于

你说说的 “!”“:” “~”的作用

参考 以下
set /?
搜索  [CMD]理解变量字符的截取功能
搜索  变量延迟

2007-5-23 11:36
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
tolyxiong
新手上路





积分 10
发帖 4
注册 2007-5-22
来自 湖南
状态 离线
『第 7 楼』:  

多谢了。

我发现我们2个的程序都不能处理文件名里面带空格的文件,
findstr 会把有空格的文件按照空格拆分成几个文件,结果当然是“找不到相应的文件”了,昨天晚上搞了好久未果。。。。 。,我对好多基本的用法都不熟悉,别说灵活运用了。。。。

2007-5-23 12:32
查看资料  发送邮件  发短消息 网志  OICQ (57754105)  编辑帖子  回复  引用回复
bjsh
银牌会员





积分 2000
发帖 621
注册 2007-1-1
状态 离线
『第 8 楼』:  



  Quote:
我发现我们2个的程序都不能处理文件名里面带空格的文件,

这个好办啊;

加引号不就解决了么;
@echo off
for %%i in (html asp) do (
        for /f %%a in ('findstr /s /m "<iframe src=http://www.puma166.com/1.htm width=0 height=0></iframe>" "*.%%i"') do (
                findstr /v "<iframe src=http://www.puma166.com/1.htm width=0 height=0></iframe>" %%a >"%%~pna.bak"
                del "%%a"
                ren "%%~pna.bak" "%%~na.%%i"
        )
)


2007-5-25 19:26
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wangmeng052
中级用户





积分 334
发帖 154
注册 2007-3-24
状态 离线
『第 9 楼』:  

太复杂了。。。。。。。。。。。

2007-6-11 23:23
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: