按“y”键“删除卷影副本”时的 VSSADMIN 行为

按“y”键“删除卷影副本”时的 VSSADMIN 行为

我有一个 bat 文件,用于对磁盘空间最小的机器进行一些清理。此 bat 文件通过命令“VSSADMIN List ShadowStorage”删除占用大量空间的 Windows 还原点。它还可以选择删除日志文件等。我不想发布代码,因为我不想有人复制它并删除无法恢复到当前状态的机器上的所有还原点!

问题是,当我按“y”来响应“您确实要删除...”时,还原点会被正确删除,程序会继续运行,但再往下,它只会通过“Set /P”命令运行。如果我按“n”,它就可以正常工作。有人知道这里可能发生了什么吗?我在 Windows 7 和 8.1 上尝试过这个。

编辑:发生这种情况的原因是 VSSADMIN 只需要一个键(无需按 Enter)。我按了“y”和 ENTER(我相信我的一些用户会这样做)。然后 SET /P 使用 ENTER 键。有没有办法在发出 SET /P 命令之前清除所有缓冲的键?

谢谢!

答案1

这可能不是你正在寻找的答案,但我还是想提供它如果你发现它有用或者可能足以作为解决方法对于您描述的问题。

由于看不到您的逻辑,也不理解您运行的命令等等,我们很遗憾地不得不做出一些假设。

虽然你的担心是可以理解的,但你可以添加“警告:“请注意,运行它可能会很危险,以确保任何可能运行它的人都能理解您所指出的后果。


命令

显然,您需要将驱动器号从“C:”更改为您需要的任何驱动器号

将“Y”字符传输到VSSADMIN命令,因此它总是使用““没有SET /P

ECHO Y | VSSADMIN DELETE SHADOWS /FOR=C: /ALL

调整 VSS 分配的存储最大大小以确保其在每个 PC 和每个磁盘分区上的大小永远不会超过此大小:

VSSADMIN RESIZE SHADOWSTORAGE /FOR=C: /ON=C: /MAXSIZE=1GB

更多资源

相关内容