1

ビットロックされたドライブのロックを解除するバッチ スクリプトを作成しようとしています。まず、ドライブがロックされているかどうかを確認しようとしています。これまでのところ、私は持っています:

:: Check if the drive is already unlocked
set unlockstatus=0

FOR /F "tokens=*" %%i IN ('manage-bde -status %inp%') DO (
  echo %%i | find /c "Unlocked" | set /p found=
  if %found%==1 set unlockstatus=1
)
if %unlockstatus%==1 (
  echo This drive is already unlocked.
  goto input
)

%inp% はドライブ文字で、その後にコロンが続きます。

どういうわけか、このストレートアップは機能しません。何らかの理由で、2 行目の set コマンドへのパイプ入力が機能しないようです。他のすべては正常に動作しているようです。どうすればこれを達成できますか?

4

1 に答える 1

0

別の for ループを使用して、find コマンドの結果を解析します。

:: Check if the drive is already unlocked
set "unlockstatus=0"

FOR /F "tokens=*" %%A IN ('manage-bde -status %inp%') DO (
    FOR /F "tokens=*" %%B in ('echo %%A ^| find /c "Unlocked"') DO (
        if "%%B"=="1" set "unlockstatus=1"
    )
)
if "%unlockstatus%"=="1" (
    echo This drive is already unlocked.
    goto input
)
于 2013-01-31T05:01:18.480 に答える