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

下了sed,但运行时提示错误:
sed:invalid option -- i
后面一堆英文

怎么不能插入图片的呀

TOP

回复 16# 195135692


你下载的哪个版本?试试4.2.2
http://bbs.bathome.net/thread-3981-1-1.html

TOP

谢谢
下了sed.ese 4.4.2 可以了,但只能处理同一文件夹下的文件
做全盘搜索文件并删除怎么写

TOP

继续求助中
如何做全盘搜索文件并删除文件内指定内容行如
(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)))

TOP

回复 19# 195135692


    用7楼提供的BAT代码做全盘搜索,搜到之后调用sed做删除。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

我试了,程序如下
@echo off
rem acadap.lsp
set "FileName=acadap.lsp"
echo 正在搜索,请稍候...
for %%a in (C D E F ) do (
    if exist %%a:\nul (
        for /f "delims=" %%b in ('dir /a-d /s /b "%%a:\*%FileName%" 2^>nul') do (
            if /i "%%~nxb" equ "%FileName%" (
                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
            )
        )
    )
)
pause

但还是只能处理程序所在目录的文件,并最后有提示sed:cannot remove ./sed9wcipb:permission denied
我是不是搞错了什么

TOP

提示错误是因为attrib +r acadap.lsp
可还是只能处理所在程序目录的文件

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

本帖最后由 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

试了好久,终于
@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

但又奇怪了
想删除(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

回复 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"acadapp.lsp"

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

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

回复 14# 195135692


    见 15 楼签名档

TOP

返回列表