batch-file - 如何使用批处理脚本删除字符串的一部分?
问题描述
我想删除这段代码的一部分:set hash=certutil -hashfile %%A MD5
. 我的意思是我需要删除cmd.exe:和CertUtil: -hashfile 命令成功完成的 MD5 哈希。从这段代码的输出。
我的完整代码(它是一个防病毒软件,但还不完整......):
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 文件夹中的文件(还要仔细检查其他位置)!您可能会使您的系统无法使用(并删除任何新的或有意更改的文件)。
推荐阅读
- react-native - 如何在本机反应中输入这种“xxx-xxx-xxxx”格式的电话号码?
- java - 在 BitBucket 中看不到我在 IntelliJ 中的更改
- docker - Composer 没有加载我本地安装的包
- reactjs - Gatsby-Image 失败的道具类型
- c# - 我可以制作一个不控制对象位置的动画控制器状态吗?
- html - 使用 scss 样式表更改选定表格单元格的颜色
- android - gradle build 升级到 3.4.2 后无法运行项目
- gridview - SwiftUI - 带有静态单元格的 QGrid
- java - 尝试运行应用程序 IllegalArgumentException 时休眠显示错误
- bash - find 和 xarg 组合需要计数器