2015-10-05 4 views
0

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

net use v: /delete || EXIT /B 1 
net use v: "\\vmware-hostservername\share Folder" 

Мне нужно, чтобы покрыть два сценария.

  1. Выполнить проверку после того, как не перезапуск компьютера (без диска V: доступно)
  2. теста запустить повторно. Диск v: уже существует и его необходимо удалить и снова отобразить.

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

Предоставленный скрипт не работает после перезапуска ПК, поскольку v: не существует. Он нуждается в некоторой модификации, такой как

if exists V: net use v: /delete || EXIT /B 1 

Я не слишком хорошо знаком с пакетным синтаксисом вышеупомянутого psedocode.

ответ

3

Просто проверьте, если отображение существует

net use v: && (net use v: /delete /Y || exit /b 1) 

Он выполняет net use v:, чтобы показать информацию о диске. Затем он использует оператор условного выполнения &&, то есть выполняет следующую команду, если предыдущая была успешной.

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

1

TL; DR:

После размонтирует диск I без печати ничего на консоли и хранение errorlevel на 0.

net use I: /delete /Y > NUL 2>&1 || dir > NUL 

деталь:

Хотя принятый ответ но он поднимает errorlevel, если привод не установлен. Поскольку я только хотел проверить и отключить существующий диск без изменения уровня ошибок, я придумал команду выше.

net use I: /delete /Y пытается отключить диск I сразу же, тогда как > NUL 2>&1 перенаправляет вывод на NUL устройства (скрывающей его из консоли).

Если сбой отказа (установка не обнаружена), условное выполнение || начинается с того места, где dir > NUL печатает текущий контент каталога до NUL устройства (снова ничего не печатая на консоли). Это сбрасывает уровень ошибок до 0.

Конечным результатом является то, что на консоли ничего не печатается, а уровень ошибок остается на 0.