バックアップに使用されるバッチ ファイルの変更に取り組んでいます。実行すると、新しいシャドウコピーが作成され、マウントされ、必要なものがバックアップされ、マウントが解除されます。私がやりたいのは、作成したシャドウコピーを削除することです。法医学的な理由で既存のシャドウコピーを削除する方法はありません。これが私が持っていて問題のあるコードのセクションです。
: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 を同じ文字列に設定し、問題なくコマンドを実行できるので、バッチ ファイルで動作するはずです。
任意の支援をいただければ幸いです。