Вы можете использовать exist
команду для проверки правильности пути:
if exist \\192.168.1.1\drive1 net use s: \\192.168.1.1\drive1
Если вам необходимо предоставить учетные данные (т.е. ваш текущий пользователь Windows не имеет доступа к этой общей папке), добавьте /user
:
if exist \\192.168.1.1\drive1 net use s: \\192.168.1.1\drive1 /user:myDomain\myUser myPassword
Если существует вероятность, что общий ресурс уже существует, и вы хотите удалить его, если он больше не доступен, добавьте else
предложение:
if exist \\192.168.1.1\drive1 (net use s: \\192.168.1.1\drive1) else (net use /delete s:)
И еще раз, добавьте, /user
если вам это нужно.
Вы можете связать все это в пакетный файл, подобный следующему:
@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 сделает это легко:
источник
Проще просто попытаться сопоставить его с помощью проводника Windows или с помощью команды net use. Либо это работает, либо нет.
источник
Это окончательный код:
Я использую
Test-Path \\192.168.1.1\volume1
как предложено, чтобы проверить, доступен ли сетевой путь, и((New-Object System.IO.DriveInfo("Y:")).DriveType -ne "NoRootDirectory")
проверить, существует ли буква диска.источник