打开文本文件并使用批处理文件查找信息

时间:2014-07-17 08:25:21

标签: batch-file scripting volatility

我想在文本文件中检查一些信息,然后用它来插入命令。

例如:

有这个文本文件(hello.txt),其中的信息是:

Determining profile based on KDBG search...

      Suggested Profile(s) : Win7SP0x86, Win7SP1x86
                 AS Layer1 : IA32PagedMemoryPae (Kernel AS)
                 AS Layer2 : FileAddressSpace (E:\KOHMOHOJOJO-PC-20140714-152414.raw)
                  PAE type : PAE
                       DTB : 0x185000L
                      KDBG : 0x82734be8L
      Number of Processors : 1
 Image Type (Service Pack) : 0
            KPCR for CPU 0 : 0x82735c00L
         KUSER_SHARED_DATA : 0xffdf0000L
       Image date and time : 2014-07-14 15:24:17 UTC+0000
 Image local date and time : 2014-07-14 23:24:17 +0800

因此,要继续使用波动率进行分析,用户需要确定其个人资料。

有2个建议的个人资料,但在底部“Image Type (Service Pack) : 0”,它显示个人资料为Win7SP0x86而不是Win7SP1x86

如何使用这2个重要细节将其选择为正确的配置文件并将其插入命令

vol231.exe -f E:\KOHMOHOJOJO-PC-20140714-152414.raw --profile=Win7SP0x86 pslist > hello2.txt

任何人都可以帮助我吗?提前谢谢!

修改

suggested profile未修复。根据.raw文件,它可能包含2个以上的建议配置文件。您如何将Image Type (Service Pack) : 0suggested profile匹配?

例如:当它读取时,它会将两个或多个建议的配置文件“存储”到变量中,然后检查建议的配置文件是否为0或1或2等。

希望这可以解释得更好。或者任何合适的方式都是好的。

1 个答案:

答案 0 :(得分:2)

@echo off

for /f "tokens=5 delims=: " %%a in ('type hello.txt^| find /i "Image Type (Service Pack)"') do (
    set "SP=%%a"
)

for /f "tokens=2 delims=:" %%p in ('type hello.txt^| find /i "Suggested Profile(s)"') do (
    set "profiles=%%p"
)

set /a tkn=sp+1

for /f "tokens=%tkn% delims=, "  %%s in ("%profiles%") do (
    set "profile=%%s"
)



::vol231.exe -f E:\KOHMOHOJOJO-PC-20140714-152414.raw --profile=%profile% pslist > hello2.txt