Mit dem exist
Befehl können Sie prüfen, ob der Pfad gültig ist:
if exist \\192.168.1.1\drive1 net use s: \\192.168.1.1\drive1
Wenn Sie Anmeldeinformationen angeben müssen (dh Ihr aktueller Windows-Benutzer hat keinen Zugriff auf diese Freigabe), fügen Sie Folgendes hinzu /user
:
if exist \\192.168.1.1\drive1 net use s: \\192.168.1.1\drive1 /user:myDomain\myUser myPassword
Wenn die Möglichkeit besteht, dass die Freigabe bereits vorhanden ist, und Sie sie löschen möchten, wenn sie nicht mehr verfügbar ist, fügen Sie eine else
Klausel hinzu:
if exist \\192.168.1.1\drive1 (net use s: \\192.168.1.1\drive1) else (net use /delete s:)
Und noch einmal, fügen Sie das hinzu, /user
wenn Sie es brauchen.
Sie können dies alles in einer Batch-Datei zusammenbinden, die der folgenden ähnelt:
@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 würde das einfach machen:
quelle
Es ist einfacher, einfach zu versuchen, es mit dem Windows-Dateiexplorer oder mit dem Befehl net use zuzuordnen. Entweder funktioniert es oder nicht.
quelle
Dies ist der endgültige Code:
Ich benutze
Test-Path \\192.168.1.1\volume1
wie vorgeschlagen, um zu überprüfen, ob der Netzwerkpfad verfügbar ist und((New-Object System.IO.DriveInfo("Y:")).DriveType -ne "NoRootDirectory")
ob der Laufwerksbuchstabe vorhanden ist.quelle