답변:
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은 이것을 쉽게 만들 것입니다.
If(Test-Path \\192.168.1.1\Drive1)
{
net use M: \\192.168.1.1\Drive1 /user:Domain\UserName Password
}
else {net use M: /delete > nul}
Windows 파일 탐색기를 사용하거나 net use 명령을 사용하여 매핑하는 것이 더 간단합니다. 작동하거나 작동하지 않습니다.
이것이 최종 코드입니다.
function run{
net use
If(Test-Path \\192.168.1.1\volume1)
{
if (((New-Object System.IO.DriveInfo("Y:")).DriveType -ne "NoRootDirectory"))
{
"already mounted and accessible"
}
else
{
net use Y: \\192.168.1.1\volume1
"mounting"
}
}
else {
if (((New-Object System.IO.DriveInfo("Y:")).DriveType -ne "NoRootDirectory"))
{
net use Y: /delete
"removing"
}
}
exit 4
}
run
Test-Path \\192.168.1.1\volume1
네트워크 경로를 사용할 수 ((New-Object System.IO.DriveInfo("Y:")).DriveType -ne "NoRootDirectory")
있는지 확인하고 드라이브 문자가 있는지 확인 하기 위해 제안한대로 사용 합니다.