我在系统上发现了曾经是 0-day Java 漏洞的东西,这让我想到了查看每个用户配置文件中的 Java .idx 文件,寻找可能指向事件 0-day 威胁的可疑 URL。
我从这个开始:
for /d %%A in ("C:\Documents and Settings\*") do (
findstr /S "http://" "%%A\Application Data\Sun\Java\Deployment\cache\6.0\*" >> C:\temp\javaurls.txt)
这会生成一个充满 URL 的文件,但它们与许多控制信息和其他无趣的东西混在一起。我想要做的是为找到的“http://”的每个小写实例创建一个换行符。任何人都知道如何使用批处理文件中的命令行执行此操作?
最佳答案
我知道“只需使用其他工具!”答案可能很烦人。但是,Windows 批处理文件/命令行实用程序非常糟糕,如果您必须经常执行此类操作,我认为值得研究其他选项。除非你喜欢弄清楚 undocumented, non-standard, broken regular expressions和 needing hacky solutions for even the most basic functionality , 即。
一些选项:
- > Perl
- > Grep for Windows (相当于 findstr 更好)
- > Cygwin (适用于 Windows 的完整类 Linux shell 环境;包括 grep)。
这是一行 Perl,您可以将其添加到批处理文件中,以便在每个 http://
之前添加一个换行符:
perl -pi.bak -e "s|(http://)|\n$1|g" C:\temp\javaurls.txt
但是,如果我从头开始,我会在 Perl 中完成所有事情,而不是使用批处理文件。
关于regex - 使用批处理文件为关键字的每个实例创建换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13934565/