【问题标题】:Removing one ShadowCopy with a batch file使用批处理文件删除一个 ShadowCopy
【发布时间】:2017-12-12 02:38:07
【问题描述】:

我正在修改用于备份的批处理文件。当它运行时,它会创建一个新的影子副本,安装它,备份它应该备份的内容,然后卸载它。我想做的是让它删除它创建的影子副本。出于法医原因,我不删除现有的影子副本。这是我遇到和遇到问题的代码部分。

: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% 时,我得到:

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

但删除 shadowcopy 的行失败:

Error: Invalid option value.

在命令行中,我可以将 ShadowID 设置为具有相同的字符串并毫无问题地运行命令,所以我似乎应该在批处理文件中工作。

我们将不胜感激。

【问题讨论】:

    标签: batch-file command-line cmd command shadow-copy


    【解决方案1】:

    我发现问题不在于代码,而在于我如何提取变量 ShadowID。它有一个需要删除的前导空格。我使用了 Foumpie 发布的解决方案来修复它。

    https://stackoverflow.com/a/12089079/8272143

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-24
      • 1970-01-01
      • 2015-01-24
      • 1970-01-01
      相关资源
      最近更新 更多