Ich arbeite daran, eine Batch-Datei zu ändern, die für Backups verwendet wird. Wenn es ausgeführt wird, erstellt es eine neue Shadowcopy, mountet es, sichert das, was es sollte, und hebt es auf. Was ich tun möchte, ist es, die erstellte Schattenkopie löschen zu lassen. Ich möchte aus forensischen Gründen bestehende Schattenkopien nicht löschen. Hier ist der Codeabschnitt, den ich habe und mit dem ich Probleme habe.Entfernen eines ShadowCopy mit einer Batch-Datei
: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
Die FOR-Linie scheint korrekt zu funktionieren. Als ich die% ShadowID% während der Laufzeit ECHO aus erhalte ich:
ShadowID: {4fcb026a-08fe-4a34-b198-da7560db57bf}
Aber die Linie der shadow löschen schlägt mit:
Error: Invalid option value.
In der Befehlszeile kann ich ShadowID setzen die haben gleiche Zeichenfolge und führen Sie den Befehl ohne Problem, so scheint es, dass es in der Batch-Datei funktionieren sollte.
Jede Hilfe wird geschätzt.