Você pode usar o exist
comando para verificar se o caminho é válido:
if exist \\192.168.1.1\drive1 net use s: \\192.168.1.1\drive1
Se você precisar fornecer credenciais (por exemplo, seu usuário atual do Windows não tem acesso a esse compartilhamento), adicione /user
:
if exist \\192.168.1.1\drive1 net use s: \\192.168.1.1\drive1 /user:myDomain\myUser myPassword
Se houver uma chance de o compartilhamento já existir e você desejar excluí-lo, se não estiver mais disponível, adicione uma else
cláusula:
if exist \\192.168.1.1\drive1 (net use s: \\192.168.1.1\drive1) else (net use /delete s:)
E mais uma vez, adicione o /user
se precisar.
Você pode unir tudo isso em um arquivo em lotes semelhante ao seguinte:
@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=
O Powershell facilitaria isso:
fonte
É mais simples apenas tentar mapeá-lo usando o Windows File Explorer ou usando o comando net use. Ou funciona ou não.
fonte
Este é o código final:
Eu uso
Test-Path \\192.168.1.1\volume1
como sugerido para verificar se o caminho da rede está disponível e((New-Object System.IO.DriveInfo("Y:")).DriveType -ne "NoRootDirectory")
para verificar se a letra da unidade existe.fonte