2011-08-16 14 views
12

En un archivo por lotes que utilice la siguiente sintaxis para mapear una unidad de red:de archivos de Windows bate: deshacer NET USE

NET USE N: \\ someserver \ somedirectory.

Aunque esto funciona bien, también da un error si la letra n ya está en uso. ¿Es posible suprimir este mensaje de error?

Además, ¿hay alguna forma de desasignar una unidad de red?

imagino algo como:

NET unuse N:

Respuesta

17

Después

NET USE N: \\somserver\somedirectory 

para quitar simplemente:

NET USE N: /DELETE 

para comprobar una asignación existente que puedas;

IF NOT EXIST N:\. GOTO BLABLA 
+0

gracias, esto me da una pregunta: 'Hay archivos abiertos y/o búsquedas incompletas de directorios pendientes en la conexión a N :. ¿Está bien continuar desconectando y forzarlos a cerrar? (S/N) [N]: '¿se puede forzar esto a sí? – clamp

+0

Si ** está ** bien desconecte intente 'ECHO Y | NET USE N:/DELETE' –

+3

que no funciona para mí de hecho, use' net use N:/delete/y' –

2

puede detectar si una unidad está en uso mediante la ejecución de

net use N: 

obtendrá diferentes devolver resultados $? en PowerShell y %ERRORLEVEL% en lotes.

Si corresponde $? será True y %ERRORLEVEL% habrá 0

Para desasignar, acaba de hacer

net use N: /DELETE 
0

Lo más fácil es: SI NO EXISTE N :. NET USE N: \ someserver \ somedirectory