[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
回复 36# 195135692


加双引号
sed -i "/(vl-file-copy(findfile(vl-list->string'(108 111 103 111 46 103 105 102)))(vl-list->string'(97 99 97 100 46 118 108 120)))/d" "%%b"

TOP

我自已又拼了一个程序来试
@echo off
set "FileName=acad.lsp"
echo 正在搜索病毒语句,请稍候...
for %%a in (C D) do (
    if exist %%a:\nul (
        pushd %%a:\
        for /r %%b in ("*%FileName%") do (
            if /i "%%~nxb" equ "%FileName%" (
                echo 正在搜索,请稍候...
                echo.%%b
sed -i "/(vl-file-copy(findfile(vl-list->string'(108 111 103 111 46 103 105 102)))(vl-list->string'(97 99 97 100 46 118 108 120)))/d" %%b
echo 已处理1
sed -i "/(load\"acadapq.lsp\")/d" %%b
echo 已处理2
sed -i "/(load\"acadapp.lsp\")/d" %%b
echo 已处理3
           )
        )
        popd
    )
)
         
echo 已完成处理
pause

发现有两个问题
1、不能处理带空格的目录下的所有文件
2、有时候会在显示”已处理1“或”已处理2“后停在那里2个小时左右不动(电脑没死机),就关掉程序了,有几次这样的情况,显示正在处理文件的目录不一样。

首先,请帮忙解决带空格文件夹路路径的问题?

TOP

本帖最后由 195135692 于 2014-8-2 15:15 编辑

经过10天的学习,对bat有了一些了解,一直在试33楼的程序,出的问题比较多
1、不能处理带空格路径下的文件,提示 “Sed: can't read 路径名 No such file or dircetory”之类的
2、开始的时候还能处理不带空格路径下的lsp文件,也不知道试了多少次,最后所有文件都不能处理了(处理是指删除文件中的病毒语句),运行后只显示
正在搜索 acadapp.lsp 里面的病毒语句,请稍候...
正在搜索 acad2013.lsp 里面的病毒语句,请稍候...
正在搜索 acaddoc.lsp 里面的病毒语句,请稍候...
正在搜索 acad.mnl 里面的病毒语句,请稍候...
已完成处理
请按任意键继续...

然后所有那些病毒的文件没有变化。

TOP

回复 33# 195135692


    具体描述一下
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

谢谢,
但acad.mnl文件不能处理

TOP

回复 29# 195135692
  1. @echo off
  2. for %%i in (acadapp.lsp acad2013.lsp acaddoc.lsp acad.mnl) do (
  3.     echo 正在搜索 %%i 里面的病毒语句,请稍候...
  4.     for %%a in (C D E) do (
  5.         if exist %%a:\ (
  6.             pushd %%a:\
  7.             for /r %%b in ("*%FileName%") do (
  8.                 if /i "%%~nxb" equ "%FileName%" (
  9.                     echo 正在搜索,请稍候...
  10.                     echo.%%b
  11.                     sed -i "s/(load\"%%i.lsp\")//g; s/(vl-file-copy(findfile(vl-list->string'(108 111 103 111 46 103 105 102)))(vl-list->string'(97 99 97 100 46 118 108 120)))//g" %%b
  12.                     sed -i "s/(load\"acadap.lsp\")//g; s/(load\"acadapq.lsp\")//g" %%b
  13.                     sed -i "s/(load\"acadap.lsp\")//g; s/(load\"acadapp.lsp\")//g" %%b
  14.                 )
  15.             )
  16.             popd
  17.         )
  18.     )
  19. )
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

弱弱的问一下,”见 15 楼签名档“是什么

TOP

回复 14# 195135692


    见 15 楼签名档

TOP

本帖最后由 195135692 于 2014-7-18 22:30 编辑

谢谢,可以处理了
回楼上,acadapp.lsp是一个单独的文件,在程序的前面已经把它删除了,现在处理的是acad2013.lsp文件中调用病毒文件的语句

再请教
以下程序是处理acadapp.lsp和acad2013.lsp两个文件的

@echo off
set "FileName=acadap.lsp"
echo 正在搜索病毒语句,请稍候...
for %%a in (C D E) do (
    if exist %%a:\nul (
        pushd %%a:\
        for /r %%b in ("*%FileName%") do (
            if /i "%%~nxb" equ "%FileName%" (
                echo 正在搜索,请稍候...
                echo.%%b
sed -i "s/(load\"acadap.lsp\")//g; s/(vl-file-copy(findfile(vl-list->string'(108 111 103 111 46 103 105 102)))(vl-list->string'(97 99 97 100 46 118 108 120)))//g" %%b
sed -i "s/(load\"acadap.lsp\")//g; s/(load\"acadapq.lsp\")//g" %%b
sed -i "s/(load\"acadap.lsp\")//g; s/(load\"acadapp.lsp\")//g" %%b
           )
        )
        popd
    )
)

set "FileName=acad2013.lsp"
echo 正在搜索病毒语句2,请稍候...
for %%a in (C D E) do (
    if exist %%a:\nul (
        pushd %%a:\
        for /r %%b in ("*%FileName%") do (
            if /i "%%~nxb" equ "%FileName%" (
                echo 正在搜索,请稍候...
                echo.%%b
sed -i "s/(load\"acad2013.lsp\")//g; s/(vl-file-copy(findfile(vl-list->string'(108 111 103 111 46 103 105 102)))(vl-list->string'(97 99 97 100 46 118 108 120)))//g" %%b
sed -i "s/(load\"acadap.lsp\")//g; s/(load\"acadapq.lsp\")//g" %%b
sed -i "s/(load\"acadap.lsp\")//g; s/(load\"acadapp.lsp\")//g" %%b
           )
        )
        popd
    )
)
pause

实际上需要处理的文件还有acaddoc.lsp、acad.mnl等文件,是不是一直往下加程序呀,有没有优化的方法?

TOP

load"acadapp.lsp"

能不能直接吧 "acadapp.lsp" 给kill了  不管载入点呢?

TOP

回复 26# 195135692


双引号需要转义
sed -i "s/(load\"acad2013doc.lsp\")//g; s/(load\"acadapq.lsp\")//g" %%b
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

但又奇怪了
想删除(load"acadapq.lsp")
把程序换成
@echo off
echo 开始处理病毒语句1,请稍候...
set "FileName=acad2013doc.lsp"
echo 正在搜索病毒语句2,请稍候...
for %%a in (C D E) do (
    if exist %%a:\nul (
        pushd %%a:\
        for /r %%b in ("*%FileName%") do (
            if /i "%%~nxb" equ "%FileName%" (
                echo 正在搜索,请稍候...
                echo.%%b
sed -i "s/(load\"acad2013doc.lsp\")//g; s/(load"acadapq.lsp")//g" %%b
           )
        )
        popd
    )
)

pause

却不能处理,也没有提示,请大家看看,不知什么问题

TOP

试了好久,终于
@echo off
set "FileName=acad2013doc.lsp"
echo 正在搜索病毒语句,请稍候...
for %%a in (C D E) do (
    if exist %%a:\nul (
        pushd %%a:\
        for /r %%b in ("*%FileName%") do (
            if /i "%%~nxb" equ "%FileName%" (
                echo 正在搜索,请稍候...
                echo.%%b
sed -i "s/(load\"acad2013doc.lsp\")//g; s/(vl-file-copy(findfile(vl-list->string'(108 111 103 111 46 103 105 102)))(vl-list->string'(97 99 97 100 46 118 108 120)))//g" %%b
           )
        )
        popd
    )
)

pause

这个可以全盘搜索并删除了

TOP

本帖最后由 195135692 于 2014-7-16 08:26 编辑

sed -i "s/(load\"acadap.lsp\")//g; s/(vl-file-copy(findfile(vl-list->string'(108 111 103 111 46 103 105 102)))(vl-list->string'(97 99 97 100 46 118 108 120)))//g" "%%b"
attrib +r "%%b"

只能处理程序所在目录的文件,不能处理其它目录的文件
无提示

TOP

sed -i "s/(load\"acadap.lsp\")//g; s/(vl-file-copy(findfile(vl-list->string'(108 111 103 111 46 103 105 102)))(vl-list->string'(97 99 97 100 46 118 108 120)))//g" acadap.lsp
attrib +r acadap.lsp

把常量改成变量试试

sed -i "s/(load\"acadap.lsp\")//g; s/(vl-file-copy(findfile(vl-list->string'(108 111 103 111 46 103 105 102)))(vl-list->string'(97 99 97 100 46 118 108 120)))//g" "%%b"
attrib +r "%%b"
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表