Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Ветеран


Contributor


Сообщения: 2728
Благодарности: 1697

Профиль | Отправить PM | Цитировать


epoddubniy, Если хочется For c токенами
Код: Выделить весь код
@Echo Off
	Set "MyRemote=\\Сервер\Test2"
	Set "MyLocal=K:"

	Set "Status=" &Set "Local=" &Set "Remote=" &Set "Network="

	For /F "tokens=1-6 delims= " %%i in ('net use ^| findstr.exe /i "%MyRemote%"') Do If Not "%%n"=="" (
		Set "Status=%%i" &Set "Local=%%j" &Set "Remote=%%k" &Set "Network=%%l %%m %%n"
		GoTo :Continue
		) Else (
		Set "Status=%%i" &Set "Remote=%%j" &Set "Network=%%k %%l %%m"
	)
	:Continue

	If "%Remote%"=="" (Echo "%MyRemote%" не подключен) Else (Echo Status="%Status%"  Local="%Local%" Remote="%Remote%" Network="%Network%")

	If /I "%MyLocal%"=="%Local%" If /I "%MyRemote%"=="%Remote%" Exit /B 0

	>nul 2>&1 Net Use %MyLocal% /Delete /Y
	>nul 2>&1 Net Use %MyRemote% /Delete /Y
	Net Use %MyLocal% %MyRemote%
Exit /B
Но, чтобы не городить огород, примитивное, но, ИМХО, надёжное решение:
Код: Выделить весь код
@Echo Off
	Set "MyRemote=\\Сервер\Test1"
	Set "MyLocal=K:"
	
	Set "Mask=Моя папка или файл на сетевом диске которая там обязательно присутствует"

	>nul 2>&1 Dir "%MyLocal%\%Mask%" ||(
		>nul 2>&1 Net Use %MyLocal% /Delete /Y
		>nul 2>&1 Net Use %MyRemote% /Delete /Y
		Net Use %MyLocal% %MyRemote%
	)
Exit /B

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 11-09-2021 в 10:15.

Это сообщение посчитали полезным следующие участники:

Отправлено: 09:49, 11-09-2021 | #17