Поэтому я пытаюсь создать командный файл, который будет выполнять разные действия в зависимости от вывода другой программы.По сути, первая программа выводит некоторую информацию о состоянии шифрования жесткого диска.Вот вывод, когда диск не зашифрован
S:\>beinvvol.exe xlc
------------------------------------------------------------------------
BEInvVol, Utimaco Safeware AG - A member of the Sophos Group
Decommissioning Tool for fully SGN-encrypted Volumes
------------------------------------------------------------------------
&Info: SGN filter driver off
&Info: Target log-file "S:\BEInvVol.log"
------------------------------------------------------------------------
Listing info for the target volume(s) -command xlc
Date: 2011-07-26 13:31:01
[Volume C:]
Drive Type: DRIVE_FIXED
[Boot Sector]
Media Type: Plain -not SGN
Media Label:
Media Serial Number: {8C19-DCCD}
File System: NTFS
Size: 232.88 GB
А вот что вы получите, когда диск зашифрован
S:\>beinvvol.exe xle
------------------------------------------------------------------------
BEInvVol, Utimaco Safeware AG - A member of the Sophos Group
Decommissioning Tool for fully SGN-encrypted Volumes
------------------------------------------------------------------------
&Info: SGN filter driver off
&Info: Target log-file "S:\KeyDestroy\BEInvVol.log"
------------------------------------------------------------------------
Listing info for the target volume(s) -command xle
Date: 2011-07-26 12:41:48
[Volume E:]
Drive Type: DRIVE_FIXED
[Boot Sector]
Media Type: SGN -fully encrypted
SGN Media GUID: {83490018-50C3-B4E3-829E-ACE3B23C86D3}
File System: NTFS
Size: 298.09 GB
[KSA Original]
Sector Offset ..... 0x0000000000065ED8 (417496)
Byte Offset ....... 0x000000000CBDB000 (213757952)
Size in Sectors ... 0x15 (21)
Size in Bytes ..... 0x2A00 (10752)
[KSA Backup]
Sector Offset ..... 0x000000002542D660 (625137248)
Byte Offset ....... 0x0000004A85ACC000 (320070270976)
Size in Sectors ... 0x15 (21)
Size in Bytes ..... 0x2A00 (10752)
Аргументы "xlc" и "xle" предназначены длявыбирая диск.Итак, я вижу, что в незашифрованном диске для «Типа носителя» у меня есть «Обычный-не SGN», а для зашифрованного драйвера у меня есть «Зашифрованный SGN»
Теперь япытаясь написать цикл FOR / F, который, когда он увидит «Plain -not SGN», перейдет в другую часть файла.Вот мой пакетный скрипт на данный момент:
@ECHO OFF
::Determine if drive is encrypted
FOR /F "tokens=3,4,5 delims= " %%A IN ('S:\beinvvol.exe xlc') DO IF /I "%%A%%B%%C"=="Plain-notSGN" GOTO NOTENCRYPTED
:ENCRYPTED
ECHO Yes
GOTO END
:NOTENCRYPTED
ECHO No
:END
Теперь мой мыслительный процесс - возьмите 3-й, 4-й и 5-й токены в списке (для интересующей меня строки 1-й токен будетбудет "Media", 2nd будет "Type:", а 3-й, 4-й и 5-й будут либо "Plain" "-not" и "SGN", либо "SGN" "-ful" "encrypted"), затем посмотритеесли эти строки будут равны "Plain-notSGN" (просто объединяя все эти строки).Однако это не работает.Есть предложения?