Как я могу получить список дисков из командного файла?
-
20-08-2019 - |
Вопрос
Я пытаюсь получить список всех подключенных дисков для обновления системы и хотел бы получить эту информацию через командный файл. Как я могу это сделать? Р>
Для получения бонусных баллов: Как я могу написать сценарий сопоставления этих дисков на новом сервере?
Решение
Список текущих сопоставлений будет возвращен
net use
Передача будет работать следующим образом (для забавы 1 , давайте сделаем это в пакетном скрипте вместо VBScript):
@echo off
setlocal EnableDelayedExpansion
set letter=.
set uncpath=.
set colon=.
for /f "delims=" %%l in ('net use') do @(
for /f "tokens=2" %%t in ("%%l") do @set letter=%%t
for /f "tokens=3" %%t in ("%%l") do @set uncpath=%%t
set colon=!letter:~1,1!
if "!colon!" EQU ":" (
echo if exist !letter! net use !letter! /delete
echo net use !letter! !uncpath! /persistent:yes
)
)
endlocal
вывод выглядит примерно так:
if exist M: net use M: /delete
net use M: \\someserver\someshare /persistent:yes
if exist N: net use N: /delete
net use N: \\otherserver\othershare /persistent:yes
Просто сохраните это в командном файле, и все готово. Р> <Ч>
1 На самом деле, " fun " здесь не то слово. ; -) р>
Другие советы
Чтобы отобразить подключенные диски
Net Use
Для сопоставления нового диска
Net Use G: \\Server\Path
Вы можете сделать это, используя vbscript
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set colDrives = objFSO.Drives
For Each objDrive in colDrives
Wscript.Echo "Drive letter: " & objDrive.DriveLetter
Next
И вы можете подключить сетевые диски с помощью
Set objNetwork = CreateObject("WScript.Network")
objNetwork.MapNetworkDrive "G:", "\\Server\Path"