如何解决如何使用批处理脚本删除字符串的一部分?
我想删除此代码的一部分:set hash=certutil -hashfile %%A MD5
。我的意思是我需要删除 cmd.exe 的 MD5 哈希: 和 CertUtil:-hashfile 命令成功完成。
这段代码的输出。
我的完整代码(它是防病毒软件,但尚未完成...):
For /f "tokens=*" %%A in ('dir /b /s') do (
set hash=certutil -hashfile %%A MD5
findstr %hash% C:\Users\Sepehr\Desktop\data.txt && (
echo %%A is Infected!
echo Deleting %%A
del /f /q %%A
) || (
echo %%A is Clean!
)
)
pause
不知道如何移除这些部件?
解决方法
您要删除的两行都包含一个冒号(与语言无关),因此您可以使用 find /v ":"
过滤哈希。然后只需在 data.txt 中使用 `findstr /g:"":
For /r "C:\" "delims=" %%A in (*) do (
certutil -hashfile "%%A" MD5|find /v ":"|findstr /G:"C:\Users\Sepehr\Desktop\data.txt" && (
echo hash is stored for %%A
) || (
echo hash is unknown for %%A
)
)
当然还有改进的空间,但这是一个工作框架。
忠告:不要删除“受感染”的文件,至少不要删除 Windows 和 Program 文件夹中的文件(并仔细检查其他位置)!您可能会使系统无法使用(并删除任何新的或有意更改的文件)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。