Lot de vérifier si le lecteur réseau mappé existe
Je suis en train d'écrire un script qui doit mapper un lecteur réseau à la lettre Z
, je suis l'aide de la commande
net use z: \\path
, le truc c'est que si l'utilisateur est déjà à l'aide de cette lettre, je ne serai pas en mesure de carte il, est-il un moyen de vérifier l'existense de ce disque (z), et si elle existe pour le démonter et monter une lettre différente et toujours utiliser le z
voiture dont j'ai besoin pour mon script, c'est une partie d'une installation, et il devrait être sur le lecteur Z.
Commencez avec
Pourquoi ne pas simplement utiliser la première lettre de lecteur disponible intead de détruire les utilisateurs actuels de mappage de lecteur:
for /F "tokens=1,2*" %G in ('net use^|Find "\\"^|Find /I "Z:"') do @echo %H %I
pour voir un exemple. (En utilisant que dans un script batch, le double de la %
signer, utilisez %%G
, %%H
etc.) en Savoir plus .... Ensuite, vous pouvez remplacer cette simple @echo %%H %%I
avec plusieurs commandes dans la boucle FOR. Hésitez pas à mise à jour de votre question avec des réalisations concrètes et de poser de plus en plus dans le cas où vous grue à quelque chose.Pourquoi ne pas simplement utiliser la première lettre de lecteur disponible intead de détruire les utilisateurs actuels de mappage de lecteur:
net use * \\path
. ou vous pouvez utiliser la commande PUSHD qui ouvrira la voie à la prochaine lettre de lecteur disponible et immédiatement faire un changement de répertoire pour que le chemin d'accès: PUSHD \\path
OriginalL'auteur user3502786 | 2014-12-02
Vous devez vous connecter pour publier un commentaire.
Vous pouvez vérifier si le lecteur est monté par
IF EXIST Z:\
. Cela devrait fonctionner:if not exist z:\ (net use z: \\my\unc\path)
Cela ne répond en partie de la question et de ne pas répondre à la question de la re-connexion du lecteur à une lettre différente.
OriginalL'auteur MichaelS
Un autre moyen possible pourrait être:
net use \\some\share
OriginalL'auteur sactiw
J'utilise la suite scriptbit de détacher tous les lecteurs:
Que fait-il? Nous allons diviser cette
FOR /F "tokens=1,2,3" %%G () DO ()--> va itérer sur l'ensemble défini entre les () et les premier, deuxième et troisième mot (n'importe quel espace est utilisé comme séparateur) seront disponibles dès %%G, %H %et %%I respectivement.
('...') exécute une commande ... et de transmettre le résultat(s) pour la boucle FOR
net use va afficher quelque chose comme ceci:
Cette sortie est ensuite transmise à Find.exe (l'équivalent windows de grep) qui cherche "\\".
Le symbole de canal | est échappé de l'aide ^ donc cmd ne pas l'exécuter directement. La sortie sera:
NET use /D pour supprimer le mappage du lecteur choisie pour la cartographie
OriginalL'auteur MMusterd
Pour répondre à la question initiale, vous pouvez vérifier si Z est déjà mappé et puis re-mapper à une autre lettre de lecteur (par exemple, y:), puis la carte z vers le nouveau chemin.
OriginalL'auteur jaylweb
Dans le lot, vous pouvez écrire du code comme ceci:
si existent
V:\
ne fonctionne pas sur Windows 10,net use
affiche des informations supplémentaires, j'ai maintenant supprimé à l'aide de>nul 2>&1
.OriginalL'auteur TarmoPikaro