Откройте текстовый файл и найдите информацию, используя пакетный файл

Я хочу проверить некоторую информацию в текстовом файле и после этого использовать ее для вставки в команду.

Например:

Существует этот текстовый файл (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) : 0 к suggested profile?

Например: когда он читает, он "сохраняет" два или более предложенных профиля в переменной, затем проверяет, имеет ли предложенный профиль 0, 1 или 2 и т. Д.

Надеюсь, это объясняет лучше. Или какой подходящий способ хорош.

1 ответ

Решение
@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
Другие вопросы по тегам