CMD/BAT - [решено] используя net use написать CMD скрипт подключения сетевого диска

Аватара пользователя
Den

CMD/BAT - [решено] используя net use написать CMD скрипт подключения сетевого диска

Сообщение Den »

Подскажите,пожалуйста, как написать в CMD, используя net use, скрипт подключения сетевого диска с присвоением названия диска (вместо буквы, например Disk_Sem) и проверкой на существование подключения с такой буквой.

Если есть подключение - заменить на возможную свободную букву.

заранее благодарен

всем хорошего дня!
Аватара пользователя
Guest

Re: CMD/BAT - [решено] используя net use написать CMD скрипт подключения сетевого диска

Сообщение Guest »

Возможно, вам бы стоило использовать поиск по форуму, эта тема не раз уже поднималась.

Вот вариант с генерацией vbs-скрипта, из cmd напрямую имя диска назначить нельзя. Имя и сетевой путь замените на свои.



Код:

Код: Выделить всё

@Echo Off
For %%A In (Z Y X W V U T S R Q P O N M L J I H G F E D C) Do (
If Not Exist "%%A:\" Set Disk=%%A&GoTo Jump
)
:Jump
>"%Temp%\netdrive.vbs" (
Echo On Error Resume Next
Echo Set objWshNetwork = CreateObject^( "WScript.Network" ^)
Echo Set objShell = CreateObject^("Shell.Application"^)
Echo MapDrive "%Disk%:", "\\inquisitor\bkup\sqldumps", "Базы"
Echo Sub MapDrive^(strDrive, strPath, strName^)
Echo    On Error Resume Next
Echo    objWshNetwork.RemoveNetworkDrive strDrive, vbTrue, vbTrue
Echo    objWshNetwork.MapNetworkDrive strDrive, strPath
Echo    objShell.NameSpace^(strDrive^).Self.Name = strName
Echo End Sub
)
Call "%Temp%\netdrive.vbs"
Del "%Temp%\netdrive.vbs"
Аватара пользователя
Foreigner

Re: CMD/BAT - [решено] используя net use написать CMD скрипт подключения сетевого диска

Сообщение Foreigner »

Цитата:



каким образом можно дать имя этому диску, например MyDisk



Не понял. Где должно быть это название? Если про метку диска, то она наверное не будет работать с сетевыми дисками.


Цитата:



echo umounting \\live.sysinternals.com\tools

что это?



Просто вывод текста, симуляция какого-то действия в контексте батника-примера
Аватара пользователя
Den

Re: CMD/BAT - [решено] используя net use написать CMD скрипт подключения сетевого диска

Сообщение Den »

большое спасибо за оперативность вечерком попробую запустить.

удачи
Аватара пользователя
El Sanchez

Re: CMD/BAT - [решено] используя net use написать CMD скрипт подключения сетевого диска

Сообщение El Sanchez »

Den, вариант №2



Код:

Код: Выделить всё

@Echo Off
SetLocal
Set UNC=\\10.29.9.200\distr
Set Label=distr
For /F "Tokens=2 Delims==" %%A In ('WMIC path Win32_MappedLogicalDisk WHERE ProviderName^=^'%UNC:\=\\%^' Get Name /Value 2^>nul') Do (
	Call Net Use %%A /delete /y 1>nul 2>&1
	Net Use * %UNC% 1>nul 2>&1
	Reg Add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\%UNC:\=#%" /v _LabelFromReg /d "%Label%" /f 1>nul 2>&1
)
Аватара пользователя
Den

Re: CMD/BAT - [решено] используя net use написать CMD скрипт подключения сетевого диска

Сообщение Den »

El Sanchez, добрый вечер!

а это для какой системы написано?

под 7 пойдет или нужно менять системные пути?



спасибо
Аватара пользователя
Den

Re: CMD/BAT - [решено] используя net use написать CMD скрипт подключения сетевого диска

Сообщение Den »

Цитата Den:



под 7 пойдет или нужно менять системные пути?
CMD/BAT - [решено] используя net use написать CMD скрипт подключения сетевого диска




Den, проверял под XP и 7.


Цитата Den:



Если нужно что то поменять, то напишите, пожалуйст,а поконкретнее где и что.
CMD/BAT - [решено] используя net use написать CMD скрипт подключения сетевого диска




Den, Менять нужно только сетевой путь (переменная UNC) и метку (переменная Label) в начале скрипта.
Аватара пользователя
El Sanchez

Re: CMD/BAT - [решено] используя net use написать CMD скрипт подключения сетевого диска

Сообщение El Sanchez »

Den,

Для подключения сетевого диска не задумываясь о букве можно:



Код:

Код: Выделить всё

net use * \\live.sysinternals.com\tools

Подключит сетевой диск на первую свободную букву с конца алфавита (z....a). Для сохранения буквы диска, все можно завернуть в for:



Код:

Код: Выделить всё

@echo off
setlocal
for /f "tokens=2" %%i in (' net use * \\live.sysinternals.com\tools ') do set "mountpoint=%%i" && goto:next
echo error
goto:eof
:next
echo doing something on %mountpoint%
echo umounting \\live.sysinternals.com\tools
net use /delete %mountpoint%

Если буква диска не важна для дальнейших действий ( хоть она и есть, назначается опять же по принципу (z...a) ), и все решается в пределах одного батника, то можно воспользоваться командой pushd:



Код:

Код: Выделить всё

@echo off
pushd \\live.sysinternals.com\tools || echo error && goto:eof
echo doing something
popd

pushd - подключает сетевой диск и делает директорию на сетевом диске текущей

popd - отключает сетевой диск и возвращает текущую директорию в исходное состояние
Аватара пользователя
Foreigner

Re: CMD/BAT - [решено] используя net use написать CMD скрипт подключения сетевого диска

Сообщение Foreigner »

Den,

Для подключения сетевого диска не задумываясь о букве можно:



Код:

Код: Выделить всё

net use * \\live.sysinternals.com\tools

Подключит сетевой диск на первую свободную букву с конца алфавита (z....a). Для сохранения буквы диска, все можно завернуть в for:



Код:

Код: Выделить всё

@echo off
setlocal
for /f "tokens=2" %%i in (' net use * \\live.sysinternals.com\tools ') do set "mountpoint=%%i" && goto:next
echo error
goto:eof
:next
echo doing something on %mountpoint%
echo umounting \\live.sysinternals.com\tools
net use /delete %mountpoint%

Если буква диска не важна для дальнейших действий ( хоть она и есть, назначается опять же по принципу (z...a) ), и все решается в пределах одного батника, то можно воспользоваться командой pushd:



Код:

Код: Выделить всё

@echo off
pushd \\live.sysinternals.com\tools || echo error && goto:eof
echo doing something
popd

pushd - подключает сетевой диск и делает директорию на сетевом диске текущей

popd - отключает сетевой диск и возвращает текущую директорию в исходное состояние
Ответить

Вернуться в «Скриптовые языки администрирования Windows»