Możesz użyć exist
polecenia, aby sprawdzić, czy ścieżka jest poprawna:
if exist \\192.168.1.1\drive1 net use s: \\192.168.1.1\drive1
Jeśli musisz podać poświadczenia (tzn. Twój obecny użytkownik systemu Windows nie ma dostępu do tego udziału), dodaj /user
:
if exist \\192.168.1.1\drive1 net use s: \\192.168.1.1\drive1 /user:myDomain\myUser myPassword
Jeśli istnieje szansa, że udział już istnieje, a chcesz go usunąć, jeśli nie jest już dostępny, dodaj else
klauzulę:
if exist \\192.168.1.1\drive1 (net use s: \\192.168.1.1\drive1) else (net use /delete s:)
I jeszcze raz dodaj, /user
jeśli potrzebujesz.
Możesz to wszystko powiązać w pliku wsadowym podobnym do następującego:
@echo off
if exist \\192.168.1.1\drive1 (set shareExists=1) else (set shareExists=0)
if exist y:\ (set driveExists=1) else (set driveExists=0)
if %shareExists%==1 if not %driveExists%==1 (net use y: \\192.168.1.1\drive1)
if %shareExists%==0 if %driveExists%==1 (net use /delete y:)
set driveExists=
set shareExists=
Powershell ułatwiłoby to:
źródło
Po prostu łatwiej jest po prostu zmapować go za pomocą Eksploratora plików Windows lub polecenia net use. Albo to działa, albo nie działa.
źródło
To jest końcowy kod:
Używam
Test-Path \\192.168.1.1\volume1
zgodnie z sugestią, aby sprawdzić, czy ścieżka sieciowa jest dostępna i((New-Object System.IO.DriveInfo("Y:")).DriveType -ne "NoRootDirectory")
sprawdzić, czy litera dysku istnieje.źródło