3

У меня есть bat-файл для очистки на машинах с минимальным дисковым пространством. Этот файл bat удаляет точки восстановления Windows, которые занимают много места с помощью команды 'VSSADMIN List ShadowStorage'. Также возможно удаление файлов журнала и т.д. Я не хочу публиковать код, потому что не хочу, чтобы кто-то копировал его и удалял все свои точки восстановления на компьютере, который не может быть восстановлен до его текущего состояния!

Проблема заключается в том, что когда я нажимаю «y» в ответ на «Вы действительно хотите удалить ...», точки восстановления удаляются должным образом, и программа продолжает работу, но дальше она просто падает командой «Set /P». Это работает нормально, если я нажму 'n'. Кто-нибудь имеет представление о том, что здесь может происходить? Я пробовал это на Windows 7 и 8.1.

Редактировать: причина, по которой это происходит, в том, что VSSADMIN требует только один ключ (не нужно нажимать ввод). Я нажимал 'y' и ENTER (как я уверен, что некоторые из моих пользователей будут делать). Клавиша ENTER была затем использована SET /P. Есть ли способ очистить буферизованные ключи перед выполнением команды SET /P?

Спасибо!

1 ответ1

1

Возможно, это не тот ответ, который вы ищете, но я все равно хотел бы предоставить его на тот случай, если вы найдете его полезным или, возможно, достаточным в качестве обходного пути к проблеме, которую вы описываете.

Не зная вашей логики и понимания команд, которые вы запускаете и так далее, мы, к сожалению, должны сделать некоторые предположения.

Хотя ваше беспокойство понятно, вы можете добавить примечание « ПРЕДУПРЕЖДЕНИЕ: », указывающее, что запускать его может быть опасно, чтобы гарантировать, что любой, кто может его запустить, понимает последствия, на которые вы указали.


КОМАНДЫ

Очевидно, вам нужно изменить букву диска с «C:» на любую другую, что вам нужно.

Передача символа "Y" в команду VSSADMIN чтобы она всегда использовала « Y » без SET /P:

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

Изменение максимального размера выделенного хранилища VSS, чтобы оно никогда не увеличивалось по сравнению с этим размером для ПК и раздела диска:

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

Дополнительные ресурсы

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .