1

バックアップに使用されるバッチ ファイルの変更に取り組んでいます。実行すると、新しいシャドウコピーが作成され、マウントされ、必要なものがバックアップされ、マウントが解除されます。私がやりたいのは、作成したシャドウコピーを削除することです。法医学的な理由で既存のシャドウコピーを削除する方法はありません。これが私が持っていて問題のあるコードのセクションです。

:DeleteNewSCopy
REM : Locates then removes the last created shadowcopy.
SET ShadowID=
FOR /F "usebackq tokens=1,2* delims=:" %%A IN (`FINDSTR /I /C:"Shadow Copy ID:" %TempFile%`) DO SET ShadowID=%%B

IF NOT "%ShadowID%" == "" (
    REM : Last ShadowCopy ID was found, Nuke it.
    vssadmin delete shadows /Shadow=%ShadowID%
) ELSE (
    ECHO No ShadowCopy ID found.
)
GOTO :EOF

FOR 行は正しく機能しているようです。実行時に %ShadowID% を ECHO すると、次のようになります。

ShadowID:  {4fcb026a-08fe-4a34-b198-da7560db57bf}

ただし、シャドウコピーを削除する行は次のように失敗します。

Error: Invalid option value.

コマンド ラインで、ShadowID を同じ文字列に設定し、問題なくコマンドを実行できるので、バッチ ファイルで動作するはずです。

任意の支援をいただければ幸いです。

4

1 に答える 1